1. MyBatis 简介
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。它使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
2. MyBatis 入门
2.1 导入开发包
首先,需要在项目中导入 MyBatis 的开发包。如果使用 Maven,可以在 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
2.2 准备测试工作
创建一个简单的测试数据库和表,以便进行后续的操作。
2.3 创建 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="数据库驱动"/>
<property name="url" value="数据库连接URL"/>
<property name="username" value="数据库用户名"/>
<property name="password" value="数据库密码"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
2.4 编写工具类测试是否获取到连接
创建一个简单的工具类,用于测试是否能够获取到数据库连接。
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class MyBatisTest {
public static void main(String[] args) {
try {
// 读取 MyBatis 配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 打印连接信息
System.out.println(sqlSession.getConnection());
// 关闭 SqlSession
sqlSession.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.5 创建实体与映射关系文件
创建一个 Blog 实体类,对应数据库中的博客表。
public class Blog {
private int id;
private String title;
private String content;
// getter 和 setter 方法
}
创建一个 BlogMapper 接口,定义数据库操作的方法。
public interface BlogMapper {
Blog getBlog(int id);
List<Blog> getBlogs();
}
创建一个 BlogMapper.xml 映射文件,实现接口中的方法。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="getBlog" resultType="Blog">
SELECT * FROM Blog WHERE id = #{id}
</select>
<select id="getBlogs" resultType="Blog">
SELECT * FROM Blog
</select>
</mapper>
3. MyBatis 核心功能
3.1 动态 SQL
MyBatis 提供了强大的动态 SQL 功能,可以方便地实现条件查询、动态 SQL 语句等。
3.2 映射器
映射器(Mapper)是 MyBatis 的一个核心概念,它是 Java 代码和 SQL 语句之间的桥梁。通过映射器,可以将 SQL 语句与 Java 方法一一对应,实现数据的增删改查。
3.3 插件
MyBatis 支持使用插件扩展其功能。例如,可以使用分页插件实现分页查询功能。
3.4 缓存
MyBatis 提供了两级缓存机制,可以提高查询效率。
4. 总结
本节介绍了 MyBatis 的基本概念、入门知识和核心功能。通过本节的学习,读者可以对 MyBatis 有一个初步的了解,并为后续深入学习打下基础。在实际开发中,可以根据项目需求灵活运用 MyBatis 的各种功能,提高数据库操作的效率和便捷性。