22、动态SQL之<bind>标签使用
2018-01-24 00:17
204 查看
假设PERSON表中有id、name、age三个字段,现在要查询name中含有”x”的记录,通常做法如下
定义dao接口对应的mapper文件:
比如要查name中含有”x”的记录,通常要传入接口的字符串就要为: “%x%”,然后传入mapper文件中的pattern的值就为 “%x%”,所以sql语句就变为:
方式二(通过
还是实现上面示例的功能,DAO接口不变,对应的mapper文件变为:
此例中,如要查name中含有”x”的记录,只需要传入接口中字符串为“x”即可,因为在mapper文件中,通过 标签把传入的参数拼接成了“%x%”。
方式一(推荐);
首先定义DAO接口:public List<Person> getPersons(@Param("pattern")String pattern);
定义dao接口对应的mapper文件:
<select id="getPersons" resultType="com.lzj.mybaits.bean.Person"> select * from PERSON <if test="pattern != null"> where name like #{pattern} </if> </select>
比如要查name中含有”x”的记录,通常要传入接口的字符串就要为: “%x%”,然后传入mapper文件中的pattern的值就为 “%x%”,所以sql语句就变为:
select * from PERSON where name like "%x%"
方式二(通过<bind>
标签实现):
还是实现上面示例的功能,DAO接口不变,对应的mapper文件变为:<select id="getPersons" resultType="com.lzj.mybaits.bean.Person"> select * from PERSON <!--接口传入的值在pattern变量中,然后把传入的值拼接成"'%'+pattern+'%'"形式,放入namePattern参数中--> <bind name="namePattern" value="'%'+pattern+'%'"/> <if test="namePattern!= null"> where name like #{namePattern} </if> </select>
此例中,如要查name中含有”x”的记录,只需要传入接口中字符串为“x”即可,因为在mapper文件中,通过 标签把传入的参数拼接成了“%x%”。
相关文章推荐
- 19、动态SQL之<set><if>标签的使用
- MyBatis动态SQL<choose>标签的使用
- 18、动态SQL之<choose><when><otherwise>标签
- 使用<a>标签调用struts2的action、传递动态参数、以及参数中出现加号等特殊字符的处理方法
- MyBatis动态SQL <trim></trim>标签的明白理解
- 20、动态SQL之<foreach>标签
- <转载>Spring(22): <context:component-scan>标签的使用说明
- 使用<spring:bind>标签绑定验证数据
- Java使用sql标签<sql:param />,<sql:param />设置日期参数
- Mybatis <choose>标签的使用:多条独立sql,选择执行
- jsp页面动态展示list-使用<select>和<c:forEach>标签
- Java中使用sql标签<sql:query />分页显示
- Mybatis 最强大的动态sql <where>标签
- struts2中<s:select>标签的动态使用
- <Ibatis in action>中使用动态SQL的一个小细节提示(与CDATA)
- 6.1 Mybatis实现动态SQL——<if></if>使用
- MyBatis 中mapper.xml文件中<sql>标签,<select>标签是使用
- Struts2<s:iterator value="" var="lst">中var的使用和一些标签的使用体会
- JSTL <c:forEach>标签的使用
- JSP web.xml <jsp-config>标签使用详解