引言
MyBatis 是一个优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。本文将带你从零开始,逐步掌握 MyBatis 开源框架。
MyBatis 简介
什么是 MyBatis?
MyBatis 是一个半自动化的持久层框架,它将 SQL 映射成 Java 对象,简化了数据库操作。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。
MyBatis 的优势
- 简化数据库操作:通过 XML 或注解的方式,将 SQL 映射成 Java 对象,简化了数据库操作。
- 灵活配置:可以通过 XML 或注解配置 SQL 映射,灵活地调整数据库操作。
- 支持自定义类型处理器:可以自定义类型处理器,方便处理复杂的数据类型。
- 支持缓存:支持一级缓存和二级缓存,提高数据库操作效率。
环境搭建
1. 安装 Java 开发环境
首先,确保你的计算机上安装了 Java 开发环境。你可以从 Oracle 官网下载并安装 Java。
2. 安装 Maven
Maven 是一个项目管理工具,用于构建和管理 Java 项目。你可以从 Maven 官网下载并安装 Maven。
3. 创建 Maven 项目
使用 Maven 创建一个新的 Java 项目,并添加 MyBatis 依赖。
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
创建 MyBatis 映射文件
1. 创建 Mapper 接口
首先,创建一个 Mapper 接口,定义数据库操作的方法。
public interface UserMapper {
User getUserById(int id);
}
2. 创建 Mapper 映射文件
接下来,创建一个 Mapper 映射文件,将 SQL 映射成 Java 对象。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
配置 MyBatis
1. 创建 MyBatis 配置文件
创建一个 mybatis-config.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>
<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/mydb"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
2. 创建 SqlSessionFactory
创建一个 SqlSessionFactory,用于创建 SqlSession。
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
3. 创建 SqlSession
创建一个 SqlSession,用于执行数据库操作。
SqlSession sqlSession = sqlSessionFactory.openSession();
执行数据库操作
1. 获取 Mapper 对象
通过 SqlSession 获取 Mapper 对象。
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
2. 执行数据库操作
执行数据库操作,如查询、更新、删除等。
User user = userMapper.getUserById(1);
3. 提交事务
提交事务,确保数据库操作成功。
sqlSession.commit();
4. 关闭 SqlSession
关闭 SqlSession,释放资源。
sqlSession.close();
总结
通过本文,你了解了 MyBatis 的基本概念、环境搭建、配置和数据库操作。MyBatis 是一个功能强大的持久层框架,可以帮助你简化数据库操作,提高开发效率。希望本文能帮助你更好地掌握 MyBatis。
