栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Map】万能的Map使用方法 & 模糊查询的两种方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Map】万能的Map使用方法 & 模糊查询的两种方式

文章目录
  • 万能的Map
  • UserMapper(or UserDao).java
  • UserMapper.xml
  • UserMapperTest.java
  • 模糊查询两种方式
    • Sql注入

万能的Map
  • Map可以传递任意个参数,对象必须传递所有参数

  • 对个参数用Map 或者 注解

  • Map结构 : 键值对

  • 用途:假如我们的实体类,或者数据库中的表,字段或者参数过多,我们就考虑使用Map

  • Map传递参数,直接在参数中取出Key即可,Key和数据库中的属性名可以不一样

UserMapper(or UserDao).java
//万能的Map
int addUser1(Map map);
UserMapper.xml
  • #{userid} 中的Userid可以和数据库中表的id名字不一样,因为这里是键
    
    
        INSERT INTO mybatis.`user`(id,NAME,pwd) VALUES(#{userid},#{userName},#{password})
    
UserMapperTest.java
  •     map.put("userid", 5);
        map.put("userName", "byby");
    

    这里可以只给数据库传递两个参数值

    
    @Test
    public void adduser1(){
        //获取sqlsession
        SqlSession sqlSession = MyBatisUtils.getSqlSession();

        //拿到UserMapper实例
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //给实例中放入测试的数值
        Map map = new HashMap();
        map.put("userid", 5);
        map.put("userName", "byby");
//        map.put("password", "2124");
        //调用测试方法
        userMapper.addUser1(map);

        //增删改,提交事务
        sqlSession.commit();
        //关闭sqlsession
        sqlSession.close();

    }

测试结果:

  • 没有传的参数值,密码为Null

模糊查询两种方式

模糊查询有两种方法:

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

    UserMapper.java

        //模糊查询
        List getUserLike(String value);
    

    UserMapper.xml

    
    
        select * from mybatis.user where name like #{value}
    
    

    UserMapperTest.java

        
        @Test
        public void getUserLike(){
            //获取SqlSession
            SqlSession sqlSession = MyBatisUtils.getSqlSession();
    
            //拿到UserMapper实例
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            
            //给实例中传入测试数值
            List userList = userMapper.getUserLike("%张%");
    
            //打印出userList
            for (User user : userList) {
                System.out.println(user);
            }
    
            //关闭SqlSession
            sqlSession.close();
    
        }
    
  2. 在sql拼接中使用通配符

    UserMapper.java

    //模糊查询
    List getUserLike(String value);
    

    UserMapper.xml