前言

软件开发中,无论我们身处什么行业(如:金融、电商、医疗、政府、电信等行业),底层实现都离不开数据库的增删改查操作。每个程序开发人员的工作也离不开CRUD。

下面通过Spring Boot整合MyBatis Plus来实现数据库的增删改查操作。

正文

开始之前,进修者先让大家了解一些概念。因为想要走的更远,不能只停留在会用,还要知道概念原理。唯有理论和实践相结合,才会提升的更快。紧接着概念之后,就是我们具体的实践了。一定要认真阅读学习哦!

springboot mysql 改造oceanbase springboot和mybatisplus增删改_后端

概念早知道

MVC框架模式,它既是框架也是设计模式。所以说MVC的设计者很不简单。框架和设计模式还是有区别的,框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

MVC(模型,视图,控制器),M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

我们企业级(J2EE)项目开发一般是基于MVC框架模式来设计的。下面的项目示例就是基于MVC框架模式设计的。

创建Spring Boot项目

创建项目工程,这里就不做介绍了,大家应该知道可以通过IDEA快速创建或通过MyEclipse进行创建等。

本案例采用MyEclipse创建Spring Boot项目,还不熟悉的可以参考这篇文章:MyEclipse10如何快速搭建SpringBoot环境

整合MyBatis Plus

在pom.xml中添加MyBatis-Plus框架依赖

<dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-boot-starter</artifactId>
		<version>2.3.1</version>
	</dependency>
	<dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-generator</artifactId>
		<version>2.3.1</version>
	</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

实现增删改查(CRUD)功能

下面开始具体介绍增删改查的相关操作。开始之前,确保数据库中已经创建好相关表,项目中包也定义完成。

告诉大家一个简单的方式,可以通过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工具进行测试。

springboot mysql 改造oceanbase springboot和mybatisplus增删改_java_02


查看数据库,看是否真的添加成功,数据库中有新增的记录代表插入成功,如下图所示:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_后端_03

查询

在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工具测试流程如下图:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_spring boot_04


查看数据库,看是否真的存在该条数据,如下图所示:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_java_05

修改

在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!";
	}

验证修改用户功能,postman工具测试流程如下图:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_后端_06

查看数据库,看是否真的修改成功,如下图所示:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_后端_07

删除

在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!";
	}

验证删除用户功能,postman工具测试流程如下图:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_后端_08

查看数据库,看是否删除成功,数据库中没有该用户信息代表删除成功,如下图所示:

springboot mysql 改造oceanbase springboot和mybatisplus增删改_maven_09

说明

上面的项目示例源码文件,进修者就不提供了,因为大家粘贴复制直接运行也没有意义。框架版本和开发工具也不一定相同,但是处理逻辑是一样的。你们自己实战一遍才是真正的学到了,如果有不懂的,也可以评论区给诉我,我会一一回复的。

小结

通过以上的学习,进修者相信您已经掌握了使用MyBatis-Plus来实现数据库的增删改查操作。其实各种数据库的操作都是相似的,搞明白一个就可以了。其他数据库的学习可以通过找异同点来学习和应用。

还有一点要特别注意:不要过多关注使用的工具是不是最主流的,用的框架版本是不是新的。咱们的牛B要体现在不管用什么工具或框架,都能够调通自己的程序代码和解决实践过程中遇到的任何问题!

感谢您读完了进修者的内容分享,欢迎留言区一起聊聊天,聊聊关于您对“Spring Boot整合MyBatis Plus,实现增删改查操作”有什么更好的想法!