MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,大大减少了开发工作。下面,我将通过一系列步骤和图片,带你详细了解如何使用 MyBatis 简化 Java 数据库操作。
1. 环境搭建
首先,确保你的开发环境已经安装了 Java、Maven(用于依赖管理)和数据库(如 MySQL)。以下是 MyBatis 的基本依赖配置:
<dependencies>
<!-- MyBatis 核心库 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- log4j 日志 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
2. 创建 MyBatis 配置文件
在项目的 src/main/resources 目录下创建 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/your_database?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="your_password"/>
</dataSource>
</environment>
</environments>
<!-- 映射器 -->
<mappers>
<mapper resource="com/your/package/YourMapper.xml"/>
</mappers>
</configuration>
3. 创建 Mapper 接口
在 com/your/package 目录下创建一个接口 YourMapper.java,定义数据库操作方法。
package com.your.package;
import org.apache.ibatis.annotations.Select;
public interface YourMapper {
@Select("SELECT * FROM your_table")
List<YourEntity> selectAll();
}
4. 创建 Mapper 映射文件
在 src/main/resources/com/your/package 目录下创建 YourMapper.xml 文件,定义 SQL 语句。
<?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.your.package.YourMapper">
<select id="selectAll" resultType="com.your.package.YourEntity">
SELECT * FROM your_table
</select>
</mapper>
5. 使用 MyBatis
在 Java 代码中,通过 SqlSessionFactoryBuilder 和 SqlSession 获取 MyBatis 会话。
public class Main {
public static void main(String[] args) {
try {
// 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("src/main/resources/mybatis-config.xml"));
// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 获取 Mapper 接口
YourMapper mapper = sqlSession.getMapper(YourMapper.class);
// 调用数据库操作方法
List<YourEntity> entities = mapper.selectAll();
// 处理结果
for (YourEntity entity : entities) {
System.out.println(entity);
}
// 关闭 SqlSession
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过以上步骤,你已经成功使用 MyBatis 简化了 Java 数据库操作。接下来,你可以根据自己的需求进行扩展,如分页、缓存、事务等。希望这个一步一图教学能帮助你更好地理解 MyBatis 的使用。
