上一节主要介绍了springboot集成mybatis进行,以及后端开发思想。这一节主要编写sql映射文件,即真正的sql语句。实现增删改查用户数据,以及配置application.yml或者configuration文件实现控制台打印SQL语句。
接着上一节编写续写~~~~~~
目录
UserService.java
UserController.java
新增和更新UserDao修改如下:
创建UserMapper.xml文件
修改/更新用户数据测试
删除用户数据测试:
UserController.java:
UserDao.java:
postman测试:
开启控制台 SQL 日志打印
配置application文件
控制台打印效果
UserService.java
@Service
public class UserService {
@Autowired
private UserDao userDao;
public int save(User user) {
if(user.getId() == null) { //user没有ID,表示是新增
return userDao.insertUser(user);
} else { // 否则为更新
return userDao.updateUser(user);
}
}
}
此时controller中引入UserService,通过service接口传输数据,UserController如下修改:
UserController.java
@Autowired
private UserService userService;
// 新增和修改
@PostMapping
public Integer save(@RequestBody User user) {
return userService.save(user);
}
新增和更新UserDao修改如下:
@Update("update sys_user set username = #{username}, password = #{password}, nickname = #{nickname}," +
"email = #{email}, phone = #{phone},address = #{address}, role = #{role} where id = #{id}")
int updateUser(User user);
创建UserMapper.xml文件
编写sql映射文件,即真正的sql语句。
在resources目录下创建与Java对应的mapper包,注意这里创建时要用/隔开
(创建对应的包是为了方便打包时,接口与映射文件在同一目录下)
在包下创建UserMapper.xml文件,编写sql语句。
<?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.smx.graproject.dao.UserDao">
<update id="updateUser">
update sys_user
<set>
<if test="username != null and username !=''">
username = #{username},
</if>
<!-- <if test="password != null and password !=''">-->
<!-- password = #{password},-->
<!-- </if>-->
<if test="nickname != null and nickname !=''">
nickname = #{nickname},
</if>
<if test="email != null and email !=''">
email = #{email},
</if>
<if test="phone != null and phone !=''">
phone = #{phone},
</if>
<if test="address != null and address !=''">
address = #{address},
</if>
<!-- <if test="role != null and role !=''">-->
<!-- role = #{role},-->
<!-- </if>-->
</set>
<where>
id = #{id}
</where>
</update>
</mapper>
修改/更新用户数据测试
此时数据可修改并且不会影响其他数据,如下所示:
测试结果:
删除用户数据测试:
UserController.java:
// 删除某条数据
@DeleteMapping("/{id}")
public Integer delete(@PathVariable Integer id) {
return userDao.deleteById(id);
}
UserDao.java:
@Delete("delete from sys_user where id = #{id}")
Integer deleteById(@Param("id") Integer id);
postman测试:
当我们id设为0传送,postman测试结果返回0时 说明没有删除任何数据。
当我们id设为3传送,postman测试结果返回1时 说明id=3的数据已删除。
开启控制台 SQL 日志打印
配置application文件
在application.yml或configuration文件中配置
# 开启控制台 SQL 日志打印(以下两种方式)
# logging.level.com.smx.graproject.dao=debug
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mybatis:
mapper-locations: classpath:mapper/*.xml #扫描所有mybatis的xml文件
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
控制台打印效果
下一节专门写mybatis分页查询以及mybatis-plus分页查询。敬请期待~~~