已知用户实体类为com.qst.User,请在UserMapper.xml中使用标签完成如下两个查询语句:1)从user表中根据uname和usex查询用户信息,其中uname模糊查询,如果uname、usex参数传入的值为空则查询全部信息。 2)从user表中根据uname或usex查询用户信息,其中uname模糊查询,如果uname不为空则根据uname模糊查询,如果uname为空,usex不为空则根据usex查询,如果两个参数值都为空,则查询id<10的用户信息。
代码如下:
<?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">
<mapper namespace="com.qst.mapper.UserMapper">
<select id="getUserByusexAnduname" resultType="com.qst.entity.User">
select * from user
<where>
<if test="usex!=null and usex!=''">
usex = #{usex}
</if>
<if test="uname != null and uname!=''">
AND uname LIKE concat('%',#{uname},'%')
</if>
</where>
</select>
<select id="getUserByusexAnduname2" resultType="com.qst.entity.User">
select * from user
<where>
<if test="usex!=null and usex!='' and (uname = null or uname =='')">
usex = #{usex}
</if>
<if test="(uname != null and uname!='') and (usex==null or usex=='')">
AND uname LIKE concat('%',#{uname},'%')
</if>
<if test="(uname == null or uname=='') and (usex==null or usex=='')">
AND id < 10
</if>
</where>
</select>
</mapper>
package com.qst.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.qst.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 用户表
* @Author: balackoon
* @Date: 2022-05-14
* @Version: V1.0
*/
public interface UserMapper extends BaseMapper<User> {
List<User> getUserByusexAnduname(@Param("usex") String usex,@Param("uname") String uname);
List<User> getUserByusexAnduname2(@Param("usex") String usex,@Param("uname") String uname);
}
若有帮助,谢谢采纳~
1.
select * from user
<where>
<if test="name != null">name like concat('%', #{name}, '%')</if>
<if test="usex != null">and usex = #{usex}</if>
</where>
2.
select * from user
<where>
<if test="uname != null and uname != ''">uname like concat('%', #{uname}, '%')</if>
<if test="uname == null and usex != null">usex = #{usex}</if>
<if test="uname == null and usex == null">id > 10</if>
</where>