MyBatis 是一款优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 通过简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,简单的Java对象)映射成数据库中的记录。
MyBatis 简介
什么是持久层?
持久层,也称为数据访问层,是介于业务逻辑层和数据源之间的层,负责与数据库进行交互,完成数据的增删改查等操作。
为什么选择 MyBatis?
- 简单易用:MyBatis 简化了数据库操作,降低了开发难度。
- 灵活配置:支持 XML 和注解两种配置方式,满足不同开发习惯。
- 高效性能:MyBatis 采用缓存机制,提高数据库访问效率。
- 支持自定义类型处理器:可以自定义类型处理器,实现复杂的数据类型映射。
MyBatis 入门实战
1. 环境搭建
1.1 添加依赖
首先,需要在项目的 pom.xml 文件中添加 MyBatis 的依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-redis</artifactId>
<version>1.0.0</version>
</dependency>
1.2 创建 MyBatis 配置文件
在项目根目录下创建 mybatis-config.xml 文件,配置数据源、事务管理、映射器等:
<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/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
1.3 创建实体类和映射器接口
创建实体类 User 和映射器接口 UserMapper:
public class User {
private Integer id;
private String name;
private Integer age;
// getters and setters
}
public interface UserMapper {
List<User> selectAll();
}
1.4 创建映射器 XML 文件
在 src/main/resources/com/example/mapper 目录下创建 UserMapper.xml 文件,定义 SQL 语句和映射关系:
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectAll" resultType="com.example.User">
SELECT id, name, age FROM user
</select>
</mapper>
2. MyBatis 使用方法
2.1 获取 SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
2.2 获取 SqlSession
SqlSession session = sqlSessionFactory.openSession();
2.3 执行查询
List<User> users = session.selectList("com.example.mapper.UserMapper.selectAll");
2.4 提交事务
session.commit();
2.5 关闭 SqlSession
session.close();
MyBatis 项目应用
在实际项目中,MyBatis 可以与 Spring 框架集成,实现自动加载映射器和 SQL 会话,简化开发过程。下面是一个简单的示例:
public class MyBatisExample {
@Resource
private UserMapper userMapper;
public void findAll() {
List<User> users = userMapper.selectAll();
System.out.println(users);
}
}
通过以上步骤,你已经完成了 MyBatis 的入门实战。在实际开发过程中,可以根据需求调整配置、自定义类型处理器、使用动态 SQL 等,进一步提升开发效率和性能。
