MyBatis 是一款优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
以下是 MyBatis 的入门指南,我们将从搭建环境开始,逐步实现 CRUD 操作。
一、环境搭建
1. 系统要求
- Java 开发工具包 (JDK):版本建议为 1.8 或更高
- IDE:推荐使用 IntelliJ IDEA 或 Eclipse
- Maven:用于构建和管理项目,版本建议为 3.6.1 或更高
2. 创建项目
- 打开 IDE,创建一个新的 Maven 项目。
- 添加以下依赖到项目的
pom.xml文件中:
<dependencies>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- JDBC 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
</dependencies>
3. 配置数据源
- 在项目的
src/main/resources目录下创建application.properties文件。 - 添加以下配置:
# 数据库连接信息
druid.driver-class-name=com.mysql.cj.jdbc.Driver
druid.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
druid.username=root
druid.password=root
二、创建实体类和Mapper接口
1. 实体类
创建一个名为 User 的实体类,用于表示用户信息:
public class User {
private Integer id;
private String name;
private String email;
// 省略构造方法、getter 和 setter
}
2. Mapper接口
创建一个名为 UserMapper 的 Mapper 接口,用于定义 CRUD 操作:
public interface UserMapper {
// 添加用户
void addUser(User user);
// 根据ID查询用户
User getUserById(Integer id);
// 更新用户信息
void updateUser(User user);
// 删除用户
void deleteUser(Integer id);
}
三、创建Mapper XML
在 src/main/resources/mapper 目录下创建 UserMapper.xml 文件,用于定义 SQL 映射:
<mapper namespace="com.example.mapper.UserMapper">
<!-- 添加用户 -->
<insert id="addUser" parameterType="User">
INSERT INTO user (name, email) VALUES (#{name}, #{email})
</insert>
<!-- 根据ID查询用户 -->
<select id="getUserById" parameterType="Integer" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 更新用户信息 -->
<update id="updateUser" parameterType="User">
UPDATE user SET name = #{name}, email = #{email} WHERE id = #{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="Integer">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
四、使用MyBatis实现CRUD操作
- 创建一个名为
MyBatisDemo的类,用于测试 MyBatis 的 CRUD 操作。
public class MyBatisDemo {
public static void main(String[] args) {
// 创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(new ClassPathResource("application.properties"));
// 获取SqlSession
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
// 获取Mapper接口的实现
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 添加用户
User user = new User();
user.setName("张三");
user.setEmail("zhangsan@example.com");
userMapper.addUser(user);
// 查询用户
User userById = userMapper.getUserById(user.getId());
System.out.println("用户名:" + userById.getName() + ",邮箱:" + userById.getEmail());
// 更新用户信息
userById.setName("李四");
userById.setEmail("lisi@example.com");
userMapper.updateUser(userById);
// 查询更新后的用户信息
User userByIdAfterUpdate = userMapper.getUserById(user.getId());
System.out.println("更新后用户名:" + userByIdAfterUpdate.getName() + ",邮箱:" + userByIdAfterUpdate.getEmail());
// 删除用户
userMapper.deleteUser(user.getId());
}
}
}
运行 MyBatisDemo 类,你将看到控制台输出用户信息,并完成 CRUD 操作。
五、总结
通过本文的介绍,你已成功搭建 MyBatis 环境,并实现了 CRUD 操作。MyBatis 作为一个优秀的持久层框架,在项目开发中有着广泛的应用。希望本文能帮助你快速入门 MyBatis,并在实际项目中发挥其优势。
