5.Map和模糊查询

Map和模糊查询

引入的原因
  1. 在之前的CRUD操作中,INSERT与UPDATE都是传入了POJO类 , 这意味着当一个POJO类十分复杂的时候,我们在执行操作的时候每次都需要新建这个类的实例,十分不方便,

    例如 当UPDATE的时候, 假设我们只需要根据id修改name , 如果传入的是User ,就需要**新建一个User实例,为其附上参数对应的值,然后传入 **,但实际上 password属性是不需要的

  2. 除此之外,传入POJO类也为**#{}带来了限制 **: #{} 只能是 POJO类的属性名 , 使用Map可以使得更加灵活

SqlSession sqlSession = MybatisUtil.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int flag = userMapper.addUser(new User(4,"name4","4567"));  //实际上 password 是完全不需要的
sqlSession.commit(); //增删改必须提交事物 sqlSession.commit();
sqlSession.close();
return flag ;

如果使用Map<> , 就可以仅仅传入id 与 name 等SQL语句需要的参数 ,从而简化操作

具体使用

如果 字段或者参数过多,应该使用Map

//使用Map进行用户insert
public int addUser2(Map<String,Object> map);
<!--通过Map添加用户-->
<insert id="addUser2" parameterType="Map"><!--传入类型是Map , 会发现#{}可以是随意的命名,#{}是Map的键值,对应其value-->
    insert into mybatis.user (id,name,password) values (#{userId},#{userName},#{userPassword})
</insert>
Map<String,Object> map = new HashMap<String,Object>(){
    {
        put("userId",5);  
        put("userName","嘿嘿");
        put("userPassword","123213");
    }
};
insertUser2(map);

模糊查询

  1. 在Java中 加入模糊查询通配符%

    List<User> userList = mapper.getUserList("%张%");
    
  2. 在SQL中拼接使用通配符%

    select * from user where name like '%'#{name}'%'  <!--直接 '%'#{}'%拼接'-->
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值