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 }

 

 

posted @ 2019-01-01 10:51  wq9  阅读(3097)  评论(0编辑  收藏  举报