基于 MyBatis 的数据持久化框架的使用详解
什么是 MyBatis
MyBatis 是一种开源的持久化框架,简单地将 SQL 语句与 Java 对象进行映射。它可以轻松地将复杂的 SQL 语句映射到可维护的 Java 对象中。
MyBatis 提供了一些内置工具和插件,可以大大简化开发人员编写持久层代码的工作。
MyBatis 的使用
在使用 MyBatis 之前,首先需要在项目中引入 MyBatis 的依赖。
引入 MyBatis 依赖
可以通过 Maven 来引入 MyBatis 的依赖。在 pom.xml 文件中加入以下依赖即可:
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
配置 MyBatis
MyBatis 的配置文件是一个 XML 文件,可以配置数据源、映射文件等信息。在项目中创建一个 mybatis.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>
在这个配置文件中,定义了一个数据源,同时引入了一个映射文件。
创建数据表
在使用 MyBatis 之前,需要先在数据库中创建数据表。可以通过以下 SQL 语句来创建一个用户表:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(255) NOT NULL COMMENT '用户名',
`password` varchar(255) NOT NULL COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
创建映射文件
MyBatis 的映射文件用于将 SQL 语句与 Java 对象进行映射。可以通过以下方式来创建一个映射文件:
<?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">
<resultMap type="com.example.entity.User" id="userResultMap">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
<select id="getUserById" resultMap="userResultMap">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="addUser">
INSERT INTO user(username, password) VALUES(#{username}, #{password})
</insert>
</mapper>
在映射文件中,定义了一个 UserMapper 接口,并提供了查询用户和新增用户的方法。
创建实体类
创建一个 User 实体类,以便 MyBatis 可以将查询结果映射到 Java 对象上:
public class User {
private int id;
private String username;
private String password;
// getters and setters
}
使用 MyBatis 进行操作
当所有配置和代码都准备好了之后,就可以使用 MyBatis 进行数据持久化操作了。
在项目中创建一个 UserService 类,并注入 UserMapper:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(int id) {
return userMapper.getUserById(id);
}
@Override
public void addUser(String username, String password) {
userMapper.addUser(username, password);
}
}
同时,在 Spring 的配置文件中,需要添加 mapper 扫描的扫描路径:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper"/>
</bean>
现在,我们已经可以使用 UserService 来进行数据持久化操作了。例如:
@SpringBootTest
public class UserServiceImplTest {
@Autowired
private UserService userService;
@Test
void testGetUserById() {
User user = userService.getUserById(1);
assertNotNull(user);
assertEquals("admin", user.getUsername());
assertEquals("123456", user.getPassword());
}
@Test
void testAddUser() {
userService.addUser("test", "test123");
User user = userService.getUserById(2);
assertNotNull(user);
assertEquals("test", user.getUsername());
assertEquals("test123", user.getPassword());
}
}
示例
下面演示新增一个用户和查询一个用户的代码实现。
示例1:新增一个用户
@Autowired
private UserMapper userMapper;
@Test
void testAddUser() {
User user = new User();
user.setUsername("test");
user.setPassword("123456");
userMapper.addUser(user);
}
示例2:查询一个用户
@Autowired
private UserMapper userMapper;
@Test
void testGetUserById() {
User user = userMapper.getUserById(1);
System.out.println(user);
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于MyBatis的数据持久化框架的使用详解 - Python技术站