使用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     }

最終的運行結果:

 

 查詢數據庫:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM