一、Map的使用
前面我們在Mapper介面的方法中,傳入的引數都是一個基本型別或者是一個物體類,那么如果我們需要的引數不止一個但又用不到物體類所有的屬性有沒有什么更好的辦法呢,這里我們就可以用到Map了,
我們還是以具體的操作來進行理解,
1.利用Map實作查詢
(1)修改UserMapper介面
1 package com.jms.dao; 2 3 import java.util.List; 4 import java.util.Map; 5 6 import com.jms.pojo.User; 7 8 public interface UserMapper { 9 //利用Map獲取User資訊 10 User getUserbymap(Map<String, Object> map); 11 }
(2)修改UserMapper.xml組態檔
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <!-- id對應介面中的方法 --> <select id="getUserbymap" parameterType="Map" resultType="com.jms.pojo.User"> select * from user where id=#{mapid} and username=#{mapname} </select> </mapper>
(3)junit測驗
1 @Test 2 public void Select2() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 Map<String, Object> map = new HashMap<String, Object>(); 7 map.put("mapid", 10000); 8 map.put("mapname", "jms1"); 9 User user = userMapper.getUserbymap(map); 10 System.out.println(user); 11 sqlSession.close(); 12 }
這里查詢的是id為10000,username為jms1的用戶資訊,
測驗結果:

2.總結
至今為止,我們已經有了三種進行引數傳遞的方式:
1.傳遞一個基本型別,
2.傳遞一個物體類,
3.傳遞一個Map,
二、模糊查詢
模糊查詢有兩種方法:
1.java代碼中傳遞通配符“%%”
(1)修改UserMapper介面
1 package com.jms.dao; 2 3 import java.util.List; 4 import java.util.Map; 5 6 import com.jms.pojo.User; 7 8 public interface UserMapper { 9 //模糊查詢獲取User資訊 10 List<User> getUsersLike(String value); 11 }
(2)修改UserMapper.xml組態檔
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <!-- id對應介面中的方法 --> <select id="getUsersLike" parameterType="String" resultType="com.jms.pojo.User"> select * from user where username like #{value} </select> </mapper>
(3)junit測驗
1 @Test 2 public void SelectLike() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 List<User> users = userMapper.getUsersLike("%jms%"); 7 for(User user: users) { 8 System.out.println(user); 9 } 10 sqlSession.close(); 11 }
測驗結果:

2.在SQL陳述句中拼接通配符“%%”
(1)修改UserMapper介面
與上同,
(2)修改UserMapper.xml組態檔
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 命名空間namespace對應Mapper介面 --> <mapper namespace="com.jms.dao.UserMapper"> <!-- id對應介面中的方法 --> <select id="getUsers" resultType="com.jms.pojo.User"> <select id="getUsersLike" parameterType="String" resultType="com.jms.pojo.User"> select * from user where username like "%"#{value}"%" </select> </mapper>
(3)junit測驗
1 @Test 2 public void SelectLike() { 3 //利用工具類獲取SqlSession 4 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 5 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 6 List<User> users = userMapper.getUsersLike("jms"); 7 for(User user: users) { 8 System.out.println(user); 9 } 10 sqlSession.close(); 11 }
測驗結果:

(本文僅作個人學習記錄用,如有紕漏敬請指正)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505943.html
標籤:其他
上一篇:Python自學筆記(蟒蛇書)
