软件开发中,无论我们身处什么行业(如:金融、电商、医疗、政府、电信等行业),底层实现都离不开数据库的增删改查操作。每个程序开发人员的工作也离不开CRUD。
下面通过Spring Boot整合MyBatis Plus来实现数据库的增删改查操作。
开始之前,进修者先让大家了解一些概念。因为想要走的更远,不能只停留在会用,还要知道概念原理。唯有理论和实践相结合,才会提升的更快。紧接着概念之后,就是我们具体的实践了。一定要认真阅读学习哦!
MVC框架模式,它既是框架也是设计模式。所以说MVC的设计者很不简单。框架和设计模式还是有区别的,框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。
MVC(模型,视图,控制器),M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。
我们企业级(J2EE)项目开发一般是基于MVC框架模式来设计的。下面的项目示例就是基于MVC框架模式设计的。
创建项目工程,这里就不做介绍了,大家应该知道可以通过IDEA快速创建或通过MyEclipse进行创建等。
本案例采用MyEclipse创建Spring Boot项目,还不熟悉的可以参考这篇文章:MyEclipse10如何快速搭建SpringBoot环境
在pom.xml中添加MyBatis-Plus框架依赖
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>2.3.1version>
dependency>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-generatorartifactId>
<version>2.3.1version>
dependency>
该项目数据库采用的是MySQL数据库。打开application.yml配置文件,添加MySQL数据源配置
#连接数据库信息
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/userssm?characterEncoding=UTF8
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
# print logger
logging:
level:
com.training.mapper: DEBUG
下面开始具体介绍增删改查的相关操作。开始之前,确保数据库中已经创建好相关表,项目中包也定义完成。
告诉大家一个简单的方式,可以通过MyBatis-Plus的代码生成器来生成代码哦!不会的参考这篇文章:MyBatis Plus中的代码生成器,让写代码变得如此简单
在UserMapper接口类中增加自定义的添加用户的接口,也可以使用MyBatis-Plus提供的。
/**
* to add the User to MySQL database
* @param user
*/
Integer saveUser(User user);
在UserMapper.xml中配置添加用户的逻辑
<insert id="saveUser" parameterType="com.training.entity.User">
insert into user (name, pwd, dept, website, phone)
values(#{name}, #{pwd},#{dept}, #{website}, #{phone})
insert>
业务层UserService中定义添加用户的接口和UserMapper中的保持一致就可以了,也可以定义不同方法名
/**
* to add the User to MySQL database
* @param user
*/
Integer saveUser(User user);
在UserServiceImpl实现类中实现添加用户的方法
@Autowired
private UserMapper userMapper;
@Override
public Integer saveUser(User user) {
// TODO Auto-generated method stub
return userMapper.saveUser(user);
}
控制器类UserController中编写Rest映射请求
@Autowired
private UserService userService;
/**
* to insert the user data into the table
* @param user
* @return
*/
@RequestMapping("/save")
public String saveUser(@RequestBody User user) {
Integer result = userService.saveUser(user);
if (null == result || result == 0) {
return "save failure!";
}
return "save successful!";
}
验证添加用户功能,可以写测试类测试;这里为了方便使用postman工具进行测试。
查看数据库,看是否真的添加成功,数据库中有新增的记录代表插入成功,如下图所示:
在UserMapper接口类中增加自定义的查询用户的接口,也可以使用MyBatis-Plus提供的。
/**
* via the parameter name 'id' then to query the user object
* @param id
* @return
*/
User queryUserById(int id);
在UserMapper.xml中配置查询用户的数据库操作逻辑
<select id="queryUserById" parameterType="int" resultType="com.training.entity.User">
select * from user where id=#{id}
select>
业务层UserService中定义查询用户的接口和UserMapper中的保持一致就可以了。
/**
* via the parameter name 'id' then to query the user object
* @param id
* @return
*/
User queryUserById(int id);
在UserServiceImpl实现类中实现查询用户的方法
@Override
public User queryUserById(int id) {
// TODO Auto-generated method stub
return userMapper.queryUserById(id);
}
控制器类UserController中编写查询用户的Rest映射请求
@RequestMapping("/query")
public User queryUserById(int id) {
return userService.queryUserById(id);
}
验证查询用户的功能,postman工具测试流程如下图:
查看数据库,看是否真的存在该条数据,如下图所示:
在UserMapper接口类中增加自定义的修改用户的接口。
/**
* to update the User instance
* @param user
*/
Integer updateUser(User user);
在UserMapper.xml中配置修改用户的数据库操作逻辑
<update id="updateUser" parameterType="com.training.entity.User">
update user set name=#{name}, pwd=#{pwd}, dept=#{dept}, website=#{website}, phone=#{phone} where id=#{id}
update>
业务层UserService中定义修改用户的接口和UserMapper中的保持一致就可以。
/**
* to update the User instance
* @param user
*/
Integer updateUser(User user);
在UserServiceImpl实现类中实现修改用户的方法
@Override
public Integer updateUser(User user) {
// TODO Auto-generated method stub
return userMapper.updateUser(user);
}
控制器类UserController中编写修改用户的Rest映射请求
@RequestMapping("/update")
public String updateUser(@RequestBody User user) {
Integer result = userService.updateUser(user);
if (null == result || result == 0) {
return "update failure!";
}
return "update successful!";
}
在UserMapper接口类中增加自定义的删除用户的接口
/**
* via the parameter name 'id',then to delete the user instance
* @param id
*/
Integer deleteUser(int id);
在UserMapper.xml中配置删除用户的数据库操作逻辑
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
delete>
业务层UserService中定义删除用户的接口和UserMapper中的保持一致就可以了。
/**
* via the parameter name 'id',then to delete the user instance
* @param id
*/
Integer deleteUser(int id);
在UserServiceImpl实现类中实现删除用户的方法
@Override
public Integer deleteUser(int id) {
// TODO Auto-generated method stub
return userMapper.deleteUser(id);
}
控制器类UserController中编写删除用户的Rest映射请求
@RequestMapping("/del")
public String deleteUser(int id) {
Integer result = userService.deleteUser(id);
if (null == result || result == 0) {
return "delete failure!";
}
return "delete successful!";
}
查看数据库,看是否删除成功,数据库中没有该用户信息代表删除成功,如下图所示:
上面的项目示例源码文件,进修者就不提供了,因为大家粘贴复制直接运行也没有意义。框架版本和开发工具也不一定相同,但是处理逻辑是一样的。你们自己实战一遍才是真正的学到了,如果有不懂的,也可以评论区给诉我,我会一一回复的。
通过以上的学习,进修者相信您已经掌握了使用MyBatis-Plus来实现数据库的增删改查操作。其实各种数据库的操作都是相似的,搞明白一个就可以了。其他数据库的学习可以通过找异同点来学习和应用。
还有一点要特别注意:不要过多关注使用的工具是不是最主流的,用的框架版本是不是新的。咱们的牛B要体现在不管用什么工具或框架,都能够调通自己的程序代码和解决实践过程中遇到的任何问题!
感谢您读完了进修者的内容分享,欢迎留言区一起聊聊天,聊聊关于您对“Spring Boot整合MyBatis Plus,实现增删改查操作”有什么更好的想法!
我是进修者,期待与您肩并肩,一起进化成长!