使用MyBatis实现持久化操作
时间: 2023-07-11 16:04:04 浏览: 116
MyBatis 是一款优秀的持久层框架,可以实现 Java 对数据库的操作。下面是使用 MyBatis 实现持久化操作的步骤:
1. 配置文件:需要在配置文件中配置数据库连接信息、mapper 文件位置等。配置文件可以是 XML 格式,也可以是 Java Properties 格式。
2. POJO 类:需要编写与数据库表对应的 POJO 类,包含对象属性和 getter/setter 方法。
3. Mapper 文件:需要编写与数据库操作相关的 SQL 语句,并将其存储在 mapper 文件中。Mapper 文件可以是 XML 格式,也可以是 Java Annotation 格式。
4. SqlSessionFactory:SqlSessionFactory 是 MyBatis 的核心类之一,用于创建 SqlSession 对象。SqlSession 是 MyBatis 中执行 SQL 语句的入口。
5. SqlSession:SqlSession 是 MyBatis 中执行 SQL 语句的入口。可以通过 SqlSession 对象执行 CRUD 操作。
6. 测试代码:编写测试代码,通过 SqlSession 对象执行 SQL 语句,并验证数据操作的正确性。
示例代码如下:
1. 配置文件 mybatis-config.xml:
```xml
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
2. User POJO 类:
```java
public class User {
private Integer id;
private String name;
private Integer age;
// getter/setter 方法省略
}
```
3. Mapper 文件 UserMapper.xml:
```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" parameterType="int" resultType="com.example.entity.User">
select * from user where id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.entity.User">
insert into user(name, age) values(#{name}, #{age})
</insert>
<update id="updateUser" parameterType="com.example.entity.User">
update user set name = #{name}, age = #{age} where id = #{id}
</update>
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>
</mapper>
```
4. SqlSessionFactory:
```java
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
```
5. SqlSession:
```java
SqlSession session = sqlSessionFactory.openSession();
```
6. 测试代码:
```java
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
System.out.println(user);
User newUser = new User();
newUser.setName("Tom");
newUser.setAge(20);
userMapper.insertUser(newUser);
user.setName("Jerry");
user.setAge(30);
userMapper.updateUser(user);
userMapper.deleteUserById(1);
session.commit();
```
以上就是使用 MyBatis 实现持久化操作的步骤。
阅读全文