版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangbinlong/article/details/78496988
Spring MVC SQL模糊匹配实现
<mapper namespace="com.frmscs.repository.mapper.sys.SysRoleMapper" > <resultMap id="BaseResultMap" type="com.frmscs.entity.sys.SysRole" > <id column="ROLE_ID" property="roleId" jdbcType="INTEGER" /> <result column="ROLE_NAME" property="roleName" jdbcType="VARCHAR" /> <result column="ROLE_DESC" property="roleDesc" jdbcType="VARCHAR" /> <result column="SYS_ROLE_GROUP_ID" property="sysRoleGroupId" jdbcType="INTEGER" /> <result column="CREATE_DATE" property="createDate" jdbcType="TIMESTAMP" /> <result column="UPDATE_DATE" property="updateDate" jdbcType="TIMESTAMP" /> <result column="create_by" property="createBy" jdbcType="INTEGER" /> <result column="update_by" property="updateBy" jdbcType="INTEGER" /> </resultMap>
设置查询公共属性
<sql id="Base_Column_List" > ROLE_ID, ROLE_NAME, ROLE_DESC, SYS_ROLE_GROUP_ID, CREATE_DATE, UPDATE_DATE, create_by, update_by </sql>
查询方法
<select id="findAllSysRole" resultMap="BaseResultMap" parameterType='com.frmscs.repository.command.SysRoleCmd'> select <include refid="Base_Column_List" /> from sys_role <where> 1=1 <if test="sysRoleGroupId != null"> AND SYS_ROLE_GROUP_ID = #{sysRoleGroupId} </if> <if test="roleName != null and roleName != ''"> AND ROLE_NAME like CONCAT('%',#{roleName,jdbcType=VARCHAR},'%') </if> </where> </select>
如上所示 roleName 不等于null 并且 roleName 不等于 空字符串
ROLE_NAME LIKE CONCAT('%',#{roleName,jdbcType = VARCHAR},'%') 就可以实现对ROLE_NAME的模糊匹配
例: 要查询结果为 '系统管理' 的信息 , 输入 其中任意一个字符就可以查到 '系统'
SQL中查询:
SELECT * FROM sys_role WHERE ROLE_NAME LIKE '%系统%';