MyBatis练习3

文章介绍了Mybatis中的动态SQL标签,如if、where用于条件查询,set用于更新语句,choose提供多条件选择,foreach处理in语句,以及如何实现分页,包括基本的limit方法和使用PageHelper插件进行高级分页。
摘要由CSDN通过智能技术生成

动态sql练习

1.Mybatis if 标签

Mybatis 动态SQL里的if标签,其关键代码如下:

<select id="listProduct" resultType="Product">

select * from product_

<if test="name!=null">

where name like concat('%',#{name},'%')

</if>

</select>

其作用是:如果没有传参数name,那么就查询所有,如果有name参数,那么就进行模糊查询。
这样只需要定义一条sql语句即可应付多种情况了,在测试的时候,也只需要调用这么一条sql语句listProduct 即可。

Product.xml

TestMybatis.java

运行结果:

 2.Mybatis where标签。

where 标签的用途:如果要进行多条件判断,那么可以通过<where>标签来解决,其关键代码如下:

<select id="listProduct" resultType="Product">

select * from product_

<where>

<if test="name!=null">

and name like concat('%',#{name},'%')

</if>

<if test="price!=null and price!=0">

and price > #{price}

</if>

</where>

</select>

<where>标签会进行自动判断
如果任何条件都不成立,那么就在sql语句里就不会出现where关键字
如果有任何条件成立,会自动去掉多出来的 and 或者 or。

set标签

where标签类似的,在update语句里也会碰到多个字段相关的问题。 在这种情况下,就可以使用set标签,其关键代码如下:

<set>

<if test="name != null">name=#{name},</if>

<if test="price != null">price=#{price}</if>

</set>

trim标签

trim 用来定制想要的功能

比如where标签就可以用

<trim prefix="WHERE" prefixOverrides="AND |OR ">

...

</trim>

来替换。

3.Mybatis choose标签

Mybatis里面没有else标签,但是可以使用when otherwise标签来达到这样的效果。

<select id="listProduct" resultType="Product">

SELECT * FROM product_

<where>

<choose>

<when test="name != null">

and name like concat('%',#{name},'%')

</when>

<when test="price !=null and price != 0">

and price > #{price}

</when>

<otherwise>

and id >1

</otherwise>

</choose>

</where>

</select>

其作用是: 提供了任何条件,就进行条件查询,否则就使用id>1这个条件。

修改Product.xml

修改TestMybatis.java

 查询结果如下:

 查询结果起到了id>1的效果。

4.Mybatis foreach 标签

foreach标签通常用于in 这样的语法里,其关键代码如下:

SELECT * FROM product_

WHERE ID in

<foreach item="item" index="index" collection="list"

open="(" separator="," close=")">

#{item}

</foreach>

利用foreach标签,查询出id等于1,3,5的数据出来。

Product.xml

 TestMybatis.java

 查询结果如下:

Mybatis 分页

首先,先将数据库数据表Category_中的数据清除,然后新增100条数据

结果如下:

然后,修改Category.xml代码,新增limit 

 

最后,通过注解方式进行测试,结果如下:

 

Mybatis PageHelper

因为是第三方插件,首先导入两个jar包,pagehelper-5.1.0-beta2.jar,jsqlparser-1.0.jar。

然后,配置插件,在mybatis-config.xml中,添加15-19行的代码,表示开启PageHelper插件

修改Category.xml,24-26行的limit注释掉,因为分页相关工作,会由PageHelper去做掉,不需要自己去写了。

进行分页查询,

 结果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值