Spring Boot(09):轻松驾驭MySQL!使用MyBatis的XML配置方式完成CRUD操作(附Spring Boot
1. 前言
Spring Boot作为一款高效的Java开发框架,拥有丰富的组件库和依赖管理机制,能够大大简化Java Web应用的开发过程。MyBatis是一种轻量级的Java持久化框架,它避免了传统的JDBC编程中繁琐的重复代码,提供了更加优雅简洁的数据访问接口。本文将介绍如何使用Spring Boot集成MyBatis,使用XML配置方式访问MySQL,实现增删改查功能。
2. 摘要
本文主要介绍了如何在Spring Boot中使用MyBatis框架来访问MySQL数据库,包括配置MyBatis和MySQL数据库的相关信息,使用MyBatis生成Mapper接口,以及使用Mapper接口来进行增删改查操作。最后,本文还提供了测试代码和总结。
3. 正文
3.1 配置文件
在完成项目初始化之后,我们需要将MyBatis和MySQL的依赖添加到pom.xml文件中:
<dependencies>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
示例截图如下:
接着我们还需要在application.properties文件中配置MySQL的数据库信息:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3.2 配置文件数据库表
在MySQL中创建一个名为user_info的表,表结构如下:
CREATE TABLE `user_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`age` int(11) NOT NULL,
`gender` varchar(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
3.3 配置文件实体类
定义一个User类,与数据库表user_info对应:
public class User {
private Integer id;
private String name;
private Integer age;
private String gender;
// 省略getter和setter方法
}
3.4 映射文件
创建一个名为UserMapper.xml的XML文件,在其中配置User类与数据库表user_info的映射关系:
<?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.demo.mapper.UserMapper">
<resultMap id="userResultMap" type="com.example.demo.entity.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
<result property="gender" column="gender"/>
</resultMap>
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
insert into user_info(name, age, gender)
values(#{name}, #{age}, #{gender})
</insert>
<delete id="deleteUserById">
delete from user_info where id=#{id}
</delete>
<update id="updateUserNameById">
update user_info set name=#{name} where id=#{id}
</update>
<select id="getUserById" resultMap="userResultMap">
select * from user_info where id=#{id}
</select>
<select id="listUsers" resultMap="userResultMap">
select * from user_info
</select>
</mapper>
示例截图如下:
3.5 DAO层
创建UserMapper接口,定义对User类的CRUD操作:
@Repository
public interface UserMapper {
int insertUser(User user);
int deleteUserById(Integer id);
int updateUserNameById(@Param("id") Integer id, @Param("name") String name);
User getUserById(Integer id);
List<User> listUsers();
}
示例截图如下:
3.6 Service层
创建UserService类,调用UserMapper接口中的方法,实现业务逻辑:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public int insertUser(User user) {
return userMapper.insertUser(user);
}
public int deleteUserById(Integer id) {
return userMapper.deleteUserById(id);
}
public int updateUserNameById(Integer id, String name) {
return userMapper.updateUserNameById(id, name);
}
public User getUserById(Integer id) {
return userMapper.getUserById(id);
}
public List<User> listUsers() {
return userMapper.listUsers();
}
}
示例截图如下:
3.7 测试代码
创建一个名为UserTest的测试类,编写测试用例:
@SpringBootTest
class UserTest {
@Autowired
private UserService userService;
@Test
void listUsers() {
List<User> userList = userService.listUsers();
for (User user : userList) {
System.out.println(user);
}
}
@Test
void getUserById() {
User user = userService.getUserById(1);
System.out.println(user);
}
@Test
void insertUser() {
User user = new User();
user.setName("Tom");
user.setAge(20);
user.setGender("男");
System.out.println(userService.insertUser(user));
}
@Test
void deleteUserById() {
System.out.println(userService.deleteUserById(1));
}
@Test
void updateUserNameById() {
System.out.println(userService.updateUserNameById(2, "Jerry"));
}
}
3.8 结果展示
运行测试代码,可以看到以下结果:
User(id=1, name=Tom, age=20, gender=男)
1
1
1
User(id=2, name=Jerry, age=22, gender=女)
User(id=3, name=Lucy, age=18, gender=女)
可以看到,测试代码成功地实现了对MySQL数据库的CRUD操作。
4. 全文小结
本文介绍了如何使用Spring Boot集成MyBatis,并使用XML配置方式访问MySQL实现增删改查的功能。首先我们在pom.xml文件中添加了MyBatis和MySQL的依赖,接着在application.properties文件中配置了MySQL的数据库信息,然后创建了user_info表和User类,并在UserMapper.xml文件中配置了类与表的映射关系以及对应的CRUD操作。接着我们在DAO层中创建了UserMapper接口,在Service层中实现了对UserMapper接口中方法的调用,最后编写了一组测试用例,演示了对MySQL数据库的增删改查操作。通过本文的学习,我们应该掌握了Spring Boot集成MyBatis访问MySQL的基本方法,对于Java Web应用的开发会有更深入的理解。
关于我
我是bug菌,CSDN | 阿里云 | 华为云 | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。
- 点赞
- 收藏
- 关注作者
评论(0)