MyBatis 动态元素bind元素

bind元素

:
  bind基本用于模糊查询。优点是可以防止注入攻击,统一各种数据库系统的格式,比如说MySQL先前要用concat进行模糊查询的拼接而Oracle用的是"||"。

bind的标签可以通过OGNL创建一个上下文变量,然后在sql中使用,其使用方式如下:

<select id="B" parameterType="String" resultType="com.itheima.po.Account">
		<!--name表示他的变量名-->
		<!--value是值-->
		<!--_parameter是Mybatis内置的参数,代表传入的值-->
		<!--'%'是sql语句中模糊查询的方法,用+号与传入值拼接起来,不要想着在下面的sql语句中拼接,行不通的我试过。-->
		<bind name="n" value="'%'+_parameter+'%'"/>
		select * from account where username like #{n}
		
	</select>

测试一下:

// select bind测试
		@Test
		
		public void bindTest() throws Exception {
			SqlSession session = MyBatisUtils.getSqlSession();// 获取会话
			
			String name="王";
			List<Account> users = session.selectList("com.itheima.mapper.CM1.B", name);
			session.close();// 关闭会话

			for (Account a : users) {
				System.out.println(a.toString());
			}
		}

看看数据库:
在这里插入图片描述

看看结果:
在这里插入图片描述

再来举一反三一下:

<select id="B2" parameterType="String" resultType="com.itheima.po.Account">
		<bind name="n" value="'%'+_parameter"/>
		select * from account where username like #{n}
	</select>

结果
在这里插入图片描述

好了,bind标签的测试就到这里了,水平有限,欢迎交流。

MyBatis动态SQL中的一些元素 if、set、trim、choose、foreach、bind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值