MyBatis高级查询
Posted ruijiege
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis高级查询相关的知识,希望对你有一定的参考价值。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace表示命名空间 保证它是唯一 cn.itsource.mybatis.dao.impl.ProductDaoImpl + id="getUserById"--> <mapper namespace="_02_highquery.EmployeeMapper"> <!-- id名称和ProductMapper接口方法一样--> <select id="query" resultType="_02_highquery.Employee" parameterType="_02_highquery.EmployeeQuery"> select * from employee <where> <include refid="whereSql"></include> </where> </select> <!--抽取sql通过include refid="whereSql"引用--> <sql id="whereSql"> <if test="keywords != null"> <!-- /* and name like %${keywords}% or password like %${keywords}%*/ --> <!-- (1)不行--> <!-- and name like %#{keywords}% or password like %#{keywords}% --> <!-- (2)可以使用 拼接字符串 存在sql注入--> <!-- and name like ‘%${keywords}%‘ or password like ‘%${keywords}%‘ --> <!-- (3) concat函数--> and name like concat("%",#{keywords},"%") </if> <if test="minAge != null"> and age >= #{minAge} </if> <!-- 转义1)--> <!--<if test="maxAge != null"> and age <= #{maxAge} </if>--> <!-- 写法(2)CDATA XML--> <if test="maxAge != null"> <![CDATA[ and age <= #{maxAge} ]]> </if> </sql> </mapper>
以上是关于MyBatis高级查询的主要内容,如果未能解决你的问题,请参考以下文章
每天玩转3分钟 MyBatis-Plus - 3. 高级查询(条件构造器)
SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper