MyBatis使用技巧

1、MyBatis模糊查询——bind元素使用

1.1 以往模糊查询方式

<select id="findByUsername" parameterType="String" resultType="user">
    SELECT * FROM user WHERE username LIKE
    <if test="dbName == 'oracle'">'%'||#{pattern}||'%'</if>
	<if test="dbName == 'highgo'">'%'||#{pattern}||'%'</if>
	<if test="dbName == 'mssql'">'%'+#{pattern}+'%'</if>
	<if test="dbName == 'mysql'">CONCAT('%', #{pattern}, '%')</if>
</select>

1.2. 存在的问题
根据不同的数据库使用不同的连接方式。这就使得,如果更换数据库,就需要修改源码。
1.3. bind元素的引入
bind元素的作用是通过OGNL表达式去自定义一个上下文变量,这样更方便使用。在进行模糊查询时,如果是Mysql数据库,常常会用到的是一个concat,它用%和参数相连。然而在Oracle数据库则没有,Oracle数据库使用||进行连接。这样SQL就需要提供两种形式去实现。但是有了bind元素,就不必使用数据库的语言,而是使用MyBatis的动态SQL实现。

<select id="findByUsername" parameterType="String" resultType="user">
    SELECT * FROM user WHERE 
    <if test="fieldlabel != null and fieldlabel != ''">
		<bind name="fieldlabelMatch" value="'%' + fieldlabel + '%'"/>
		username LIKE  #{fieldlabelMatch}
	</if>
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值