MyBatis 入门:从零开始,掌握持久层框架的奥秘

一、MyBatis 简介
MyBatis 是一款优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
二、MyBatis 入门步骤
1. 环境搭建
(1)下载 MyBatis 驱动包:从官网下载 MyBatis 驱动包,解压到本地。
(2)创建 Maven 项目:在 IDE 中创建一个新的 Maven 项目,添加 MyBatis 依赖。
```xml
```
(3)配置数据库连接:在 resources 目录下创建 db.properties 文件,配置数据库连接信息。
```properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
```
(4)创建实体类:根据数据库表结构创建对应的实体类。
```java
public class User {
private Integer id;
private String name;
private String email;
// 省略 getter 和 setter 方法
}
```
2. 编写 MyBatis 配置文件
(1)创建 mybatis-config.xml 文件,配置数据源、事务管理器、映射器等。
```xml
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
```
(2)创建 UserMapper.xml 映射文件,配置 SQL 语句和实体类映射。
```xml
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT * FROM user WHERE id = #{id}
```
3. 编写接口和实现类
(1)创建 UserMapper 接口,定义方法。
```java
public interface UserMapper {
User selectById(Integer id);
}
```
(2)创建 UserMapperImpl 实现类,实现接口方法。
```java
public class UserMapperImpl implements UserMapper {
private SqlSession sqlSession;
public UserMapperImpl(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public User selectById(Integer id) {
return sqlSession.selectOne("com.example.mapper.UserMapper.selectById", id);
}
}
```
4. 使用 MyBatis
(1)创建 SqlSessionFactoryBuilder 和 SqlSessionFactory。
```java
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = builder.build(new FileInputStream("src/main/resources/mybatis-config.xml"));
```
(2)创建 SqlSession。
```java
SqlSession sqlSession = sqlSessionFactory.openSession();
```
(3)创建 UserMapper 实例,调用方法。
```java
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectById(1);
System.out.println(user.getName());
```
(4)提交事务并关闭资源。
```java
sqlSession.commit();
sqlSession.close();
```
三、MyBatis 核心概念
1. 映射器(Mapper):MyBatis 的核心概念之一,用于封装 SQL 语句和实体类映射。映射器通常以 XML 或注解的形式定义。
2. 映射器接口(Mapper Interface):定义 MyBatis 映射器的方法,用于调用 SQL 语句。
3. SQL 语句(SQL Statement):MyBatis 使用 SQL 语句来操作数据库,包括查询、插入、更新和删除等。
4. 实体类(POJO):MyBatis 将 SQL 语句查询结果映射到实体类,实体类通常包含数据库表中的字段。
5. 映射文件(Mapper XML):MyBatis 使用 XML 文件来配置 SQL 语句和实体类映射。
6. SqlSession:MyBatis 的核心接口,用于执行 SQL 语句、提交事务和关闭资源。
四、总结
MyBatis 是一款优秀的持久层框架,它简化了 JDBC 代码的编写,提高了开发效率。通过本文的介绍,相信你已经对 MyBatis 有了一定的了解。在实际项目中,你可以根据自己的需求选择合适的 MyBatis 配置方式,如 XML 或注解。希望本文能帮助你顺利入门 MyBatis。






