引言
MyBatis 是一个优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
在本篇文章中,我们将从零开始,搭建一个简单的 Java 项目,并逐步集成 MyBatis,以便更好地理解这个强大的框架。
环境准备
在开始之前,请确保你已经安装了以下环境:
- JDK 1.8 或更高版本
- Maven 3.0 或更高版本
- MySQL 数据库
第一步:创建 Java 项目
- 打开 IntelliJ IDEA 或其他你喜欢的 IDE,创建一个新的 Java 项目。
- 在项目中创建一个名为
src的源文件夹。 - 在
src文件夹中,创建一个名为main的文件夹,并在其中创建java和resources两个子文件夹。
第二步:添加依赖
在 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.22</version>
</dependency>
</dependencies>
第三步:配置数据库连接
在 resources 文件夹中创建一个名为 application.properties 的文件,并添加以下内容:
# 数据库配置
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=your_password
第四步:创建 MyBatis 配置文件
在 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="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
第五步:创建实体类和 Mapper 接口
在 src/main/java/com/example 目录下创建一个名为 mapper 的包,并在其中创建 UserMapper.java 接口和 User.java 实体类。
// User.java
package com.example;
public class User {
private Integer id;
private String name;
private String email;
// 省略 getter 和 setter 方法
}
// UserMapper.java
package com.example.mapper;
public interface UserMapper {
User getUserById(Integer id);
}
第六步:创建 Mapper 映射文件
在 src/main/java/com/example/mapper 目录下创建一个名为 UserMapper.xml 的文件,并添加以下内容:
<?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.example.mapper.UserMapper">
<select id="getUserById" resultType="com.example.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
第七步:使用 MyBatis
在 src/main/java/com/example 目录下创建一个名为 App.java 的文件,并添加以下内容:
package com.example;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class App {
public static void main(String[] args) {
try (SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build("mybatis-config.xml")) {
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println("User: " + user.getName());
}
}
}
}
总结
通过以上步骤,我们已经成功搭建了一个简单的 Java 项目,并集成了 MyBatis。在这个例子中,我们创建了一个实体类 User,一个 Mapper 接口 UserMapper,以及一个 Mapper 映射文件 UserMapper.xml。最后,我们在 App.java 中使用 MyBatis 查询了一个用户信息。
这只是 MyBatis 的冰山一角,接下来你可以深入学习 MyBatis 的更多高级特性和使用场景。祝你学习愉快!
