菜鸟在MyBatis路上前行-MyBatis动态SQL

菜鸟在MyBatis路上前行-MyBatis动态SQL,注意案例是从菜鸟在MyBatis路上前行-利用SpringMVC和MyBatis实现员工列表显示页面 来的,所以代码基础需要搭建好。那么下面一起来看看动态sql。

 

1 if元素使用案例

1.1 问题

使用MyBatis动态SQL的if元素,按部门做条件查询EMP员工信息表。

1.2 方案

if元素使用语法如下:

 

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:创建项目

复制项目spring-springmvc-mybatis,创建项目mybatis-dynamic。

步骤二:增加根据部门查询员工的方法

创建封装查询条件的类Condition,代码如下:

 

在EmpDao接口中增加方法findByDept,代码如下:

 

步骤三:实现根据部门查询员工

在EmpMapper.xml中增加根据部门查询员工的SQL,代码如下:

 

步骤四:测试根据部门查询员工的方法

在TestEmpDao中,增加测试方法testFindByDept,代码如下:

 

2 choose元素使用案例

2.1 问题

使用MyBatis动态SQL的choose元素,按工资做条件查询EMP员工信息表。

2.2 方案

choose元素使用语法如下:

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:增加根据工资查询员工的方法

在EmpDao中增加方法findBySalary,代码如下:

 

步骤二:实现根据工资查询员工

在EmpMapper.xml中增加根据工资查询员工的SQL,代码如下:

在TestEmpDao中增加方法testFindBySalary,代码如下:

 

3 where元素使用案例

3.1 问题

使用MyBatis动态SQL的where元素,查询当前部门下大于指定工资的员工。

3.2 方案

where元素的使用语法如下:

 

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:增加根据部门和工资查询员工的方法

在EmpDao中增加方法findByDeptAndSalary,代码如下:

 

步骤二:实现根据部门和工资查询员工的方法

在EmpMapper.xml中增加根据部门和工资查询员工的SQL,代码如下:

 

步骤三:测试根据部门和工资查询员工的方法

在TestEmpDao中,增加测试方法testFindByDeptAndSalary,代码如下:

 

4 set元素使用案例

4.1 问题

使用MyBatis动态SQL的set元素,实现更新员工。

4.2 方案

set元素使用语法如下:

4.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:增加更新员工的方法

在EmpDao中增加更新员工的方法,代码如下:

 

步骤二:实现更新员工的方法

在EmpMapper.xml中增加更新员工的SQL,代码如下:

 

步骤三:测试更新员工的方法

在TestEmpDao中增加测试更新员工的方法,代码如下:

 

5 trim元素使用案例

5.1 问题

使用MyBatis动态SQL的trim元素代替where和set,重写findByDeptAndSalary和update方法。

5.2 方案

trim元素使用语法如下:

 

5.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:重新增加根据部门和工资查询员工的方法,以及更新员工的方法

在EmpDao中增加findByDeptAndSalary2和update2方法,代码如下:

步骤二:重新实现根据部门和工资查询员工的方法,以及更新员工的方法

在EmpMapper.xml中,实现findByDeptAndSalary2和update2,代码如下:

 

6 foreach元素使用案例

6.1 问题

使用MyBatis动态SQL的foreach元素,实现根据一组员工ID查询员工。

6.2 方案

foreach元素使用语法如下:

6.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:增加根据一组员工ID查询员工的方法

在EmpDao中增加根据一组员工ID查询员工的方法,代码如下:

 

步骤二:实现根据一组员工ID查询员工的方法

在EmpMapper.xml中增加根据一组员工ID查询员工的SQL,代码如下:

 

步骤三:测试根据一组员工ID查询员工的方法

在TestEmpDao中增加测试findByIds的方法,代码如下:

 

代码参考:mybatis-dynamic

 

参考文章:

【1】Mybatis之动态 SQL

【2】Dynamic SQL






如果您认为本教程质量不错,读后觉得收获很大,预期工资能蹭蹭蹭的往上涨,那么不妨小额赞助我一下,让我有动力继续写出高质量的教程。

发布者

souvc

souvc

搜你所想,投你所好。

发表评论