04-Map和模糊查询扩展

Map和模糊查询扩展

万能Map

  • 应用场景,比如insert sql表有很多字段,你不可能一个一个写吧…
  • 如果我们的实体类,或者数据库的表,字段或者参数过多,我们应该考虑使用Map!

代码演示

userMapper
    //万能Map
	int addUser2(Map<String,Object> map);

    User getUserById2(Map<String,Object> map);
userMapper.xml
    <insert id="addUser2" parameterType="map">
        insert into mybatis.user(id,name,pwd) values (#{userid},#{username},#{userpwd});
    </insert>

    <select id="getUserById2" parameterType="map" resultType="com.tian.pojo.User">
        select * from mybatis.user where id=#{helloId} and name=#{name};
    </select>
测试
   @Test
    public void addUser2(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        Map<String,Object> map=new HashMap<String, Object>();
        map.put("userid",5);
        map.put("username","hello");
        map.put("userpwd","233333");

        userMapper.addUser2(map);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
    }

    @Test
    public void getUserById2(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        Map<String,Object> map=new HashMap<String, Object>();
        map.put("helloId","1");
        map.put("name","狂神");
        User userById2 = userMapper.getUserById2(map);
        System.out.println(userById2);
        //关闭sqlsession
        sqlSession.close();
    }

Map传递参数,直接在sql中取出key即可!【parameterType=“map”]

对象传递参数,直接在sql中取对象的属性即可!【parameterType=“Object”]

只有一个基本类型参数的情况下,可以直接在sql中取到! [parameterType=“int” 可以不写]

多个参数用Map,或者注解!

模糊查询

1.java代码执行的时候,传递通配符% %

2.在sql拼接中使用通配符

代码演示

 List<User> getUserLike(String value);
<!--  第一种  --> 
<select id="getUserLike" resultType="com.tian.pojo.User">
        select * from user where name like #{value}
    </select>
<!--  第二种  --> 
    <select id="getUserLike" resultType="com.tian.pojo.User">
        select * from user where name like "%"#{value}"%"
    </select>

测试

   @Test
    public void getUserLike(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//    第一种    List<User> userList = userMapper.getUserLike("%李%");
        
        List<User> userList = userMapper.getUserLike("李");
        for (User user : userList) {
            System.out.println(user);
        }
        //关闭sqlsession
        sqlSession.close();
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值