MyBatis模糊查询

xiaoxiao2021-02-28  118

MyBatis模糊查询

1.参数中直接加入%%

// 测试代码 User user = new User; user.setUserName("%小明%"); List<User> userList = userMapper.selectByLike(user); // UserMapper.xml <select id="selectByLike" parameterType="user" resultMap="userMap"> select * from t_user where userName like #{userName} </select>

2.bind标签

单参数且无@Param注解:value="'%' + _parameter + '%'"单参数且有@Param("name")注解:value="'%' + name + '%'",此时使用不可使用_parameter多参数且是Map:value="'%' + key + '%'" 或 value="'%' + _parameter.key + '%'"多参数且是类:(name是类中成员变量)value="'%' + name + '%'" 或 value="'%' + _parameter.name + '%'" 或 value="'%' + _parameter.getName() + '%'" // 单参数且无@Param注解,_parameter代表该参数 // UserMapper.xml <select id="selectByLike" parameterType="user" resultMap="userMap"> <bind name="pattern" value=" '%' + _parameter + '%' "/> select * from t_user where userName like #{pattern} </select> // 单参数且有@Param注解,不能使用_parameter // UserMapper.java List<User> selectByLike(@Param("name") String name) // UserMapper.xml <select id="selectByLike" parameterType="user" resultMap="userMap"> <bind name="pattern" value=" '%' + name + '%' "/> select * from t_user where userName like #{pattern} </select> // 其余情况略,大致同上

3.MySQL函数concat()

// UserMapper.xml <select id="selectByLike" parameterType="user" resultMap="userMap"> select * from t_user where userName like concat('%', #{userName}, '%') </select>

转载请注明原文地址: https://www.6miu.com/read-40640.html

最新回复(0)