1. 程式人生 > >Mybatis中的常用的三個查詢方法

Mybatis中的常用的三個查詢方法

selectList

用於查詢多條資料的情況,返回值是一個list集合。如果沒有查到任何資料,返回沒有元素的集合(空集合,不是null)

 

selectOne

用於查詢單條資料的情況,返回值是一個物件,如果沒有查到任何資料,返回一個null。

selectMap

用於查詢多條資料的情況,多條資料要形成一個map集合。如果查不到,返回一個空map集合(不是null)


1
package com.bjsxt.pojo; 2 3 import java.io.Serializable; 4 5 public class User implements Serializable {
6 private int id; 7 private String username; 8 private String password; 9 public String toString() { 10 return "User [id=" + id + ", username=" + username + ", password=" 11 + password + "]"; 12 } 13 public int hashCode() { 14 final int prime = 31; 15 int result = 1; 16 result = prime * result + id;
17 result = prime * result + ((password == null) ? 0 : password.hashCode()); 18 result = prime * result + ((username == null) ? 0 : username.hashCode()); 19 return result; 20 } 21 public boolean equals(Object obj) { 22 if (this == obj) 23 return true; 24 if (obj == null) 25 return
false; 26 if (getClass() != obj.getClass()) 27 return false; 28 User other = (User) obj; 29 if (id != other.id) 30 return false; 31 if (password == null) { 32 if (other.password != null) 33 return false; 34 } else if (!password.equals(other.password)) 35 return false; 36 if (username == null) { 37 if (other.username != null) 38 return false; 39 } else if (!username.equals(other.username)) 40 return false; 41 return true; 42 } 43 public int getId() { 44 return id; 45 } 46 public void setId(int id) { 47 this.id = id; 48 } 49 public String getUsername() { 50 return username; 51 } 52 public void setUsername(String username) { 53 this.username = username; 54 } 55 public String getPassword() { 56 return password; 57 } 58 public void setPassword(String password) { 59 this.password = password; 60 } 61 public User(int id, String username, String password) { 62 super(); 63 this.id = id; 64 this.username = username; 65 this.password = password; 66 } 67 public User() { 68 super(); 69 } 70 71 }

mybatis.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5   <configuration>
 6       <!-- 用於指定使用哪個開發
 7                                 用於指定使用的環境id
 8        -->
 9       <environments default="dev">
10           <!-- 用於配置開發環境
11                id:環境的唯一識別碼
12            -->
13           <environment id="dev">
14               <!-- 事務管理器
15                    type:用於設定mybatis採用什麼方式管理事務
16                    JDBC表示和JDBC一樣事務的管理方式
17                -->
18               <transactionManager type="JDBC"></transactionManager>
19               <!-- 資料來源/連線池
20                                                          用於配置連結池和資料庫連結的引數
21                    type:用於設定mybatis是否採用連結池技術
22                                                         連線池:用來存資料庫連結的,減少資料庫的頻繁開關
23                    POOLED表示mybatis採用連線池技術                                     
24                -->
25               <dataSource type="POOLED">
26                   <property name="driver" value="com.mysql.jdbc.Driver"/>
27                   <property name="url" value="jdbc:mysql://localhost:3306/java505?useSSL=true&amp;characterEncoding=utf8&amp;useSSL=true"/>
28                   <property name="username" value="root"/>
29                   <property name="password" value="root"/>
30               </dataSource>
31           </environment>
32       </environments>
33       <!-- 掃描mapper檔案 -->
34       <!-- 檔案的全限制路徑要用/ -->
35       <mappers>
36           <mapper resource="com/bjsxt/mapper/UserMapper.xml"/>
37       </mappers>
38   </configuration>




1
<?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-|3-mapper.dtd"> 5 <!-- namespa:名稱空間,可以隨意定義,一般情況下要寫全限定路徑(包名加類) 6 MyBatis管理SQL語句是通過namespace+id來定位的 7 --> 8 <mapper namespace="com.bjsxt.mapper.UserMapper"> 9 <!-- select標籤用於編寫查詢語句 10 id:sql語句的唯一的標識,類比為方法名 11 resultType:用於設定返回結果的型別(全限定路徑) 12 如果返回結果是集合,要寫集合泛型的型別 13 --> 14 <select id="sellAll" resultType="com.bjsxt.pojo.User"> 15 select * from t_user 16 </select> 17 <select id="selOne" resultType="com.bjsxt.pojo.User"> 18 select * from t_user where id=1 19 </select> 20 </mapper>



1
package com.bjsxt.test; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.List; 6 import java.util.Map; 7 import java.util.Set; 8 9 import org.apache.ibatis.io.Resources; 10 import org.apache.ibatis.session.SqlSession; 11 import org.apache.ibatis.session.SqlSessionFactory; 12 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 13 import org.junit.Test; 14 15 import com.bjsxt.pojo.User; 16 17 public class TestMyBatis { 18 @Test 19 public void testSellAll()throws IOException{ 20 System.out.println(123); 21 22 //載入mybatis核心配置檔案 23 InputStream is=(InputStream) Resources.getResourceAsStream("mybatis.xml"); 24 //構建sqlSessionFactory工廠物件 25 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); 26 //通過工廠開啟Sqlsession 27 SqlSession session = factory.openSession(); 28 //通過session執行查詢操作 29 List<User> list = session.selectList("com.bjsxt.mapper.UserMapper.sellAll"); 30 for(User user:list){ 31 System.out.println(user); 32 } 33 //關閉資源 34 session.close(); 35 } 36 @Test 37 public void testSelectOne()throws IOException{ 38 System.out.println(123); 39 40 //載入mybatis核心配置檔案 41 InputStream is=(InputStream) Resources.getResourceAsStream("mybatis.xml"); 42 //構建sqlSessionFactory工廠物件 43 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); 44 //通過工廠開啟Sqlsession 45 SqlSession session = factory.openSession(); 46 //通過session執行查詢操作 47 User user = session.selectOne("com.bjsxt.mapper.UserMapper.selOne"); 48 System.out.println(user); 49 //關閉資源 50 session.close(); 51 } 52 53 @Test 54 public void testSelectMap()throws IOException{ 55 System.out.println(123); 56 57 //載入mybatis核心配置檔案 58 InputStream is=(InputStream) Resources.getResourceAsStream("mybatis.xml"); 59 //構建sqlSessionFactory工廠物件 60 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); 61 //通過工廠開啟Sqlsession 62 SqlSession session = factory.openSession(); 63 //通過session執行查詢操作 64 Map<Integer, User> map = session.selectMap("com.bjsxt.mapper.UserMapper.sellAll", "id"); 65 System.out.println(map); 66 Set<Integer>set=map.keySet(); 67 for (Integer k: set) { 68 System.out.println(map.get(k)); 69 } 70 //關閉資源 71 session.close(); 72 } 73 }