• 使用mybatis框架实现带条件查询多条件(传入Map集合)


    我们发现我们可以通过传入javaBean的方式实现我们的需求,但是就两个条件,思考:现在就给他传入一个实体类,对系统性能的开销是不是有点大了。

    现在改用传入Map集合的方式;

    奥!对了,在创建map集合时候,居然报错了,The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class。

    是因为myeclipse的jdk和你安装的jdk的版本不一致导致的,只要将两者调成一致的就可以了。

     我这里将jdk的版本都调成了1.6的了,大家没有遇到这种问题最好了,如果遇到了,随便,只要将jdk的版本调成一致的就ok。

    下面接着正题:

    UserMapper.java

     UserMapper.xml

    1   <!-- 按照名称查询,用户角色,查询用户列表 mybatis给最基础的数据类型都内建了别名,对大小写是不敏感的  使用map集合的方式-->
    2     <select id="getUserListByUserName3" parameterType="map" resultType="User" >
    3         select * from smbms_user
    4          where username like CONCAT ('%',#{userName1},'%') 
    5          and userRole = #{userRole1}
    6     </select>

    编写对应的测试类:

     1 @Test
     2     public void test7() {
     3         String userNameString="赵";
     4         Integer userRole=2;
     5         Map<String, String> map = new HashMap<String, String>();
     6         map.put("userName1", "赵");
     7         map.put("userRole1", "3");
     8     
     9         SqlSession sqlSession = null;
    10         java.util.List<User> userList2 = new ArrayList<User>();
    11         try {
    12             sqlSession = MyBatisUtil.createSqlSession();
    13             //使用mapper映射的方式实现
    14             //userList2 = sqlSession.selectList("cn.smbms.dao.user.UserMapper.getUserListByUserName",userNameString);
    15             //调用mapper接口的方式实现
    16             userList2 = sqlSession.getMapper(UserMapper.class).getUserListByUserName3(map);
    17             int size = userList2.size();
    18             mlogger.info("获取到的记录数是:" + size);
    19 
    20         } catch (Exception e) {
    21             // TODO: handle exception
    22         } finally {
    23             // 最后一定要注意:关闭会话
    24             MyBatisUtil.closeSqlSession(sqlSession);
    25 
    26         }
    27         for (User user2 : userList2) {
    28             mlogger.info("用户名:" + user2.getUserName() + ",密码:" + user2.getUserPassword());
    29         }
    30 
    31     }

    最终的运行结果:

     查询数据库:

  • 相关阅读:
    高手详解SQL性能优化十条经验
    大并发大数量中的MYSQL瓶颈与NOSQL介绍
    数据库索引的作用和优点缺点
    数据库优化方法整理
    Java中Date和Calender类的使用方法
    常用正则表达式大全 (转)
    java 反射的实例
    JAVA路径问题
    jsp ${param.id}用法
    jsp base标签与meta标签学习小结
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/11783525.html
Copyright © 2020-2023  润新知