Mybatis 完成CRUD和动态sql使用

首先修改一下测试类,将相同的初始化代码提取出来:
Mybatis 完成CRUD和动态sql使用

插入User

映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:

Mybatis 完成CRUD和动态sql使用

根据id查询User,返回值为:Map

映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:
Mybatis 完成CRUD和动态sql使用

添加User参数为HashMap

映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:
Mybatis 完成CRUD和动态sql使用

根据id删除User

映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:
Mybatis 完成CRUD和动态sql使用

根据id更新User

映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:
Mybatis 完成CRUD和动态sql使用

根据id更新User,参数为Map

映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:
Mybatis 完成CRUD和动态sql使用

动态sql

有时候需要对特定的字段进行添加操作或者修改操作,这样的话,映射文件中则需要写很多的sql语句,针对不同的字段进行操作,通过动态sql就可以实现通过一条sql进行操作不同组合的字段操作。

在映射文件中加入:
Mybatis 完成CRUD和动态sql使用

测试方法和执行结果:
Mybatis 完成CRUD和动态sql使用

Mybatis 完成CRUD和动态sql使用

继续优化sql语句,去掉where 1=1,如下:
Mybatis 完成CRUD和动态sql使用

测试结果如下:
Mybatis 完成CRUD和动态sql使用

小细节
可以通过以下方法简化查询的书写:
在映射文件中添加:
Mybatis 完成CRUD和动态sql使用
测试结果:
Mybatis 完成CRUD和动态sql使用