上一节主要介绍了springboot集成mybatis进行,以及后端开发思想。这一节主要编写sql映射文件,即真正的sql语句。实现增删改查用户数据,以及配置application.yml或者configuration文件实现控制台打印SQL语句。
接着上一节编写续写~~~~~~
目录
UserService.java
UserController.java
新增和更新UserDao修改如下:
创建UserMapper.xml文件
修改/更新用户数据测试
删除用户数据测试:
UserController.java:
UserDao.java:
postman测试:
开启控制台 SQL 日志打印
配置application文件
控制台打印效果
@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如下修改:
@Autowired
private UserService userService;
// 新增和修改
@PostMapping
public Integer save(@RequestBody User user) {
return userService.save(user);
}
@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);
编写sql映射文件,即真正的sql语句。
在resources目录下创建与Java对应的mapper包,注意这里创建时要用/隔开
(创建对应的包是为了方便打包时,接口与映射文件在同一目录下)
在包下创建UserMapper.xml文件,编写sql语句。
update sys_user
username = #{username},
nickname = #{nickname},
email = #{email},
phone = #{phone},
address = #{address},
id = #{id}
此时数据可修改并且不会影响其他数据,如下所示:
// 删除某条数据
@DeleteMapping("/{id}")
public Integer delete(@PathVariable Integer id) {
return userDao.deleteById(id);
}
@Delete("delete from sys_user where id = #{id}")
Integer deleteById(@Param("id") Integer id);
当我们id设为0传送,postman测试结果返回0时 说明没有删除任何数据。
当我们id设为3传送,postman测试结果返回1时 说明id=3的数据已删除。
在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分页查询。敬请期待~~~