Spring MVC 使用SQL進行模糊查詢
阿新 • • 發佈:2018-12-25
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 WHEREROLE_NAME LIKE '%系統%';