第1课_MyBatis开发流程
热度🔥:56 免费课程
授课语音
掌握MyBatis的基本开发流程及配置
MyBatis 是一款流行的 Java 持久化框架,它能够简化数据库操作,通过映射语句将 SQL 与 Java 对象进行映射。MyBatis 提供了比传统 JDBC 更为灵活和高效的数据库操作方式。本课件将介绍 MyBatis 的基本开发流程及配置,帮助大家快速上手 MyBatis。
1. MyBatis 概述
MyBatis 是一个半自动化的持久化框架,它通过配置文件和注解方式将 SQL 语句与 Java 对象进行映射。与 Hibernate 不同,MyBatis 允许开发者手写 SQL,提供了更高的灵活性。
- MyBatis 的主要特点:
- 支持手写 SQL,灵活性更高。
- 支持对象与数据库之间的映射。
- 提供了丰富的查询和更新操作,支持动态 SQL。
2. MyBatis 的基本开发流程
MyBatis 的基本开发流程通常包括以下几个步骤:
- 创建数据库表:准备好需要操作的数据库表。
- 创建实体类:与数据库表一一对应的 Java 类。
- 创建 MyBatis 配置文件:包括全局配置文件和映射文件。
- 编写映射文件(Mapper 文件):将 SQL 语句与 Java 方法进行映射。
- 编写 Java 代码:使用 MyBatis API 完成数据库操作。
3. MyBatis 的配置文件
3.1 全局配置文件 (mybatis-config.xml
)
mybatis-config.xml
是 MyBatis 的全局配置文件,主要用于配置数据库连接、缓存、日志等信息。最基本的配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<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/testdb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<!-- 配置MyBatis日志 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
</configuration>
代码解析:
<environments>
配置数据源和事务管理器。<dataSource>
配置数据库连接信息,如 JDBC 驱动、数据库 URL、用户名和密码。<settings>
配置 MyBatis 的日志记录方式。
3.2 Mapper 文件 (UserMapper.xml
)
Mapper 文件是 MyBatis 的核心,包含 SQL 语句的定义和与 Java 方法的映射关系。一个基本的 Mapper
文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<mapper namespace="com.example.UserMapper">
<!-- 查询所有用户 -->
<select id="findAllUsers" resultType="com.example.User">
SELECT id, name, age FROM users;
</select>
<!-- 根据ID查询用户 -->
<select id="findUserById" parameterType="int" resultType="com.example.User">
SELECT id, name, age FROM users WHERE id = #{id};
</select>
<!-- 插入用户 -->
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO users (name, age) VALUES (#{name}, #{age});
</insert>
<!-- 更新用户 -->
<update id="updateUser" parameterType="com.example.User">
UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id};
</update>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="int">
DELETE FROM users WHERE id = #{id};
</delete>
</mapper>
代码解析:
findAllUsers
查询所有用户,返回User
类型的结果集。findUserById
根据id
查询用户,#{id}
是传入参数。insertUser
插入用户数据,传入User
对象。updateUser
更新用户信息,通过User
对象传入参数。deleteUser
根据用户的id
删除用户。
4. 创建实体类
MyBatis 的实体类是 Java 对象,它与数据库中的表结构对应。一个简单的 User
类如下:
public class User {
private int id;
private String name;
private int age;
// Getter 和 Setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
代码解析:
User
类与数据库表users
对应。它包含了与表字段相对应的属性以及相应的 Getter 和 Setter 方法。
5. 创建 Mapper 接口
MyBatis 提供了 Mapper
接口用于映射 SQL 语句和 Java 方法。通过接口与 Mapper 文件中的 SQL 语句进行绑定。一个简单的 UserMapper
接口如下:
public interface UserMapper {
List<User> findAllUsers(); // 查询所有用户
User findUserById(int id); // 根据ID查询用户
int insertUser(User user); // 插入用户
int updateUser(User user); // 更新用户
int deleteUser(int id); // 删除用户
}
代码解析:
UserMapper
接口与UserMapper.xml
文件中的 SQL 映射关系。- 每个方法的签名与 XML 文件中的
id
相对应。
6. MyBatis 配置与执行
6.1 SqlSessionFactory 的创建
创建 SqlSessionFactory
用于执行 SQL 操作。通过 SqlSessionFactoryBuilder
来构建 SqlSessionFactory
。
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
代码解析:
Resources.getResourceAsStream()
用于加载配置文件。SqlSessionFactoryBuilder().build()
创建SqlSessionFactory
对象。
6.2 执行操作
通过 SqlSession
执行数据库操作。
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper userMapper = session.getMapper(UserMapper.class);
List<User> users = userMapper.findAllUsers();
for (User user : users) {
System.out.println(user.getName());
}
}
代码解析:
session.getMapper(UserMapper.class)
获取UserMapper
接口的代理对象。userMapper.findAllUsers()
调用接口方法执行查询。
7. 总结
- MyBatis 配置:通过
mybatis-config.xml
配置数据源、事务管理和日志。 - Mapper 文件:定义 SQL 语句和与 Java 方法的映射。
- 执行 SQL 操作:使用
SqlSession
执行数据库操作,获取结果并处理。
通过掌握这些基本的 MyBatis 开发流程,可以高效地完成数据库操作,提升开发效率。