MyBatis条件查询

Mybatis使用select条件查询的几种方式

1. 单条件查询

UserMapper.java

public interface UserMapper {
    //通过用户名单条件查询
    public List<User> getUserListByUserName(String userName);
}
UserMapper.xml

<select id="getUserListByUserName" resultType="User" parameterType="String">
        select * from smbms_user WHERE userName LIKE CONCAT('%',#{userName},'%') 
</select>

2.多条件查询(将查询条件封装成对象入参)

UserMapper.java

public interface UserMapper {
    //通过用户名和密码多条件查询
    public List<User> getUserListByUserNameAndPassword(User user);
}
UserMapper.xml

<select id="getUserListByUserNameAndPassword" resultType="User" parameterType="User">
        select * from smbms_user WHERE userName LIKE CONCAT('%',#{userName},'%') and userPassword = #{userPassword}
</select>

3.多条件查询(将查询条件封装成Map对象入参)

UserMapper.java

public interface UserMapper {
    //Map通过用户名和密码多条件查询
    public List<User> getUserListByMap(Map<String, String> userMap);
}
UserMapper.xml

<select id="getUserListByMap" resultType="User" parameterType="Map">
        select * from smbms_user WHERE userName LIKE CONCAT('%',#{userName},'%') and userPassword = #{userPassword}
</select>
//这种做法更加灵活,不管是什么类型的参数,或者多少个参数,我们都可以把它封装成Map数据结构进行入参,通过Map即可获取传入的值。

4.使用@param注解实现多参数入参(4个参数以下推荐使用)

UserMapper.java

public interface UserMapper {
    //注解@param:通过用户名和密码多条件查询
    public List<User> getUserListByParam(@Param("userName")String userName,@param("userPassword")String userPassword)
}

UserMapper.xml

<select id="getUserListByParam" resultType="User">
  select * from smbms_user WHERE userName LIKE CONCAT('%',#{userName},'%') and userPassword = #{userPassword}
</select>  
//用@Param来指定哪一个,就不能使用parameterType

5.使用@param注解实现多参数入参(第二种)

UserMapper.java

public interface UserMapper {
    public List<User> getUserListByUserIdAndPwd(String userName,String userPassword);
}
<select id="getUserListByUserIdAndPwd" resultType="User" >//不需要写parameterType参数
        SELECT * FROM smbms_user WHERE userName= #{0} and userPassword= #{1}
</select>
    //#{index}是第几个就用第几个的索引,索引从0开始
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟锁着秦楼

海底月是天上月,眼前人是心上人

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值