### MyBatis狂神说最全笔记解析 #### 一、MyBatis简介 ##### 1.1 什么是MyBatis? MyBatis是一款优秀的持久层框架,它支持自定义SQL查询、存储过程以及高级映射功能。通过使用MyBatis,开发人员可以避免手动编写大量的JDBC代码来处理数据库交互逻辑,如设置参数、获取结果集等。相反,这些工作由MyBatis自动完成。 - **自定义SQL查询**:开发人员可以根据业务需求自由地编写SQL语句,这使得处理复杂的数据库操作更加灵活。 - **存储过程支持**:对于复杂的数据库事务处理,可以利用存储过程提高性能和简化逻辑。 - **高级映射**:通过简单的XML配置文件或者注解的方式,可以轻松地将原始类型、接口和Java POJOs映射为数据库中的记录,简化了ORM(Object Relational Mapping)的工作量。 ##### 1.2 持久化数据概念 持久化是指将程序数据从瞬时状态转换为持久状态的过程。例如,当应用程序运行时,数据通常存储在内存中;但是一旦程序关闭,内存中的数据就会丢失。为了防止这种情况发生,需要将数据保存到磁盘或其他持久性存储设备上,以便将来能够恢复。 - **内存**:当计算机断电后,内存中的数据会丢失。 - **数据库(JDBC)** 和 **文件系统**:通过将数据写入数据库或文件系统,即使在程序关闭之后,数据仍然存在。 持久化的重要原因在于: - 需要保留某些对象的状态,以供后续使用。 - 内存资源相对昂贵,不适合长期存储大量数据。 ##### 1.3 持久层架构 持久层是软件架构中的一个重要组成部分,负责处理数据的存储和检索。通常包括以下几个层面: - **DAO (Data Access Object) 层**:负责具体的数据库访问操作。 - **Service 层**:封装业务逻辑,调用DAO层来处理数据。 - **Controller 层**:处理用户请求,并调用Service层来处理业务逻辑。 这样的层次划分有助于实现良好的模块化设计,使各部分职责分明,便于维护和扩展。 ##### 1.4 为什么需要MyBatis MyBatis作为一款优秀的持久层框架,提供了以下优势: - **简化数据库操作**:相比传统的JDBC编程方式,MyBatis可以极大地减少编写代码的工作量。 - **灵活性高**:虽然Hibernate等ORM框架也提供了数据库操作的支持,但它们可能对SQL语法有一定的限制。相比之下,MyBatis允许开发者直接编写原生SQL,更灵活。 - **SQL与代码分离**:MyBatis支持将SQL语句独立于Java代码之外,这有利于维护和团队协作。 - **ORM支持**:通过对象关系映射(ORM),可以直接使用Java对象来表示数据库中的记录,减少了转换的成本。 - **动态SQL支持**:MyBatis提供了一套强大的XML标签来支持动态构建SQL语句。 即使不使用MyBatis,也可以通过其他方式实现同样的功能,但是MyBatis提供了一个简单易用且高效的解决方案。 #### 二、第一个MyBatis程序 ##### 2.1 搭建环境 为了开始使用MyBatis,首先需要创建一个Maven项目并配置好所需的依赖。 1. **创建Maven项目**:使用IDEA等工具创建一个新的Maven项目。 2. **删除src目录**:将此项目作为父工程,随后创建子工程。 3. **导入Maven依赖**:在`pom.xml`文件中添加MySQL驱动、MyBatis和JUnit的依赖项。 ```xml <dependencies> <!-- MySQL驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <!-- JUnit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> ``` 4. **创建子模块**:在父项目下创建一个新的子模块,用于存放具体的业务代码。 ##### 2.2 创建配置文件与工具类 接下来,我们需要编写MyBatis的核心配置文件以及一个工具类来获取`SqlSession`实例。 1. **编写核心配置文件**:创建一个名为`mybatis-config.xml`的文件,并添加以下内容: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- configuration核心配置文件 --> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> </configuration> ``` 2. **编写MyBatis工具类**:创建一个名为`MybatisUtils`的类,用于获取`SqlSession`实例。 ```java public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { // 读取MyBatis配置文件 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); // 构建SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } // 获取SqlSession public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } } ``` 通过以上步骤,我们已经成功搭建了MyBatis的基本环境,并准备好了核心配置文件和工具类。下一步可以开始编写具体的业务代码,比如创建Mapper接口和对应的XML映射文件来执行CRUD操作。







- maybe_here2021-04-07一点都不详细,别下

- 粉丝: 1157
- 资源: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源


