引言
MyBatis 是一个优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
在这个教程中,我们将从零开始,逐步学习如何使用 MyBatis 进行数据库操作。
第1章:环境搭建
1.1 系统要求
- Java 8 或更高版本
- Maven 3.0 或更高版本
1.2 创建项目
- 使用 IDE(如 IntelliJ IDEA 或 Eclipse)创建一个 Java 项目。
- 在项目的
pom.xml文件中添加 MyBatis 的依赖。
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
1.3 配置数据库
- 在数据库中创建一个新的数据库,例如
mybatis_db。 - 创建一个表,例如
user,包含以下字段:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
password VARCHAR(50)
);
第2章:编写 Mapper 接口
2.1 创建 Mapper 接口
在项目中创建一个 UserMapper.java 文件,并定义一个接口:
public interface UserMapper {
User getUserById(int id);
int addUser(User user);
int updateUser(User user);
int deleteUser(int id);
}
2.2 编写 XML 映射文件
在项目中创建一个 UserMapper.xml 文件,并定义对应的 SQL 映射:
<?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>
<insert id="addUser" parameterType="com.example.User">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
<update id="updateUser" parameterType="com.example.User">
UPDATE user SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
第3章:配置 MyBatis
3.1 创建 SqlSessionFactory
在项目中创建一个 SqlSessionFactoryBuilder.java 文件,并定义一个方法用于创建 SqlSessionFactory:
public class SqlSessionFactoryBuilder {
public static SqlSessionFactory build() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);
}
}
3.2 创建 mybatis-config.xml
在项目中创建一个 mybatis-config.xml 文件,并配置数据库连接和 Mapper 文件:
<?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="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis_db?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
第4章:使用 MyBatis 进行数据库操作
4.1 获取 SqlSession
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryBuilder.build();
SqlSession sqlSession = sqlSessionFactory.openSession();
4.2 使用 Mapper 接口进行数据库操作
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user.getUsername());
sqlSession.commit();
sqlSession.close();
结语
通过本教程,您应该已经掌握了 MyBatis 的基本使用方法。MyBatis 提供了丰富的功能和灵活性,可以帮助您更高效地进行数据库操作。希望这个教程对您有所帮助!
