Mybatis查询语句返回对象和泛型集合

来源:互联网 发布:新开淘宝店铺排名 编辑:程序博客网 时间:2024/06/06 10:04

EmpMapper映射接口:

[java] view plain copy
  1. package cn.et.mybatis.lesson03;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.apache.ibatis.annotations.Result;  
  6. import org.apache.ibatis.annotations.Results;  
  7. import org.apache.ibatis.annotations.Select;  
  8.   
  9. public interface EmpMapper {  
  10.       
  11.   
  12.     /** 
  13.      * 查询单条数据, 
  14.      *  每一列的列名都会去Emp实体类中去匹配对应的属性 
  15.      *      匹配时会把二边都转为小字母进行匹配 
  16.      *      匹配成功就会调用Emp实体类中对象的set方法 
  17.      *  
  18.      * 如果列名和Emp的属性匹配不上, 
  19.      *  1.为查询结果的列设置一个别名 
  20.      *      2.将列名ename和属性ename1建立一个关系 单个属性建立关系 
  21.      *  
  22.      *   column是不区分大小写的,property是区分大小写的 
  23.      * @return 
  24.      */  
  25.     @Results(  
  26.             {  
  27.                 @Result(column="ename",property="ename1"),  
  28.                 @Result(column="empNo",property="empNo1"),  
  29.                 @Result(column="sal",property="sal1"),  
  30.             }  
  31.     )  
  32.     @Select("select * from emp where empno=#{0}")  
  33.     public Emp queryEmpByEmpNo(String empNo);  
  34.   
  35.       
  36.     /** 
  37.      * 查询出多条数据,每一条数据都是一个Emp对象 
  38.      * 每一列的列名都会去Emp实体类中去匹配对应的属性 
  39.      *      匹配时会把二边都转为小字母进行匹配 
  40.      *      匹配成功就会调用Emp实体类中对象的set方法 
  41.      * 如果没有一条数据匹配成功,则不会创建Emp对象 
  42.      * @param empNo 
  43.      * @return 
  44.      */  
  45.     @Results(  
  46.             {  
  47.                 @Result(column="ename",property="ename1"),  
  48.                 @Result(column="empNo",property="empNo1"),  
  49.                 @Result(column="sal",property="sal1"),  
  50.             }  
  51.     )  
  52.     @Select("select * from emp")  
  53.     public List<Emp> queryEmp();  
  54.       
  55. }  


测试类:

[java] view plain copy
  1. package cn.et.mybatis.lesson03;  
  2.   
  3. import java.io.InputStream;  
  4. import java.util.List;  
  5.   
  6. import org.apache.ibatis.session.SqlSession;  
  7. import org.apache.ibatis.session.SqlSessionFactory;  
  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  9. import org.junit.Test;  
  10.   
  11. public class TestMybatis {  
  12.       
  13.     public static SqlSession getSession(){  
  14.         String resource = "/cn/et/mybatis/lesson03/mybatis.xml";  
  15.         InputStream inputStream = TestMybatis.class.getResourceAsStream(resource);  
  16.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  17.         //打开会话  
  18.         SqlSession session = sqlSessionFactory.openSession();  
  19.         return session;  
  20.     }  
  21.   
  22.     public static void main(String[] args) {  
  23.         SqlSession session = getSession();  
  24.         EmpMapper emp = session.getMapper(EmpMapper.class);  
  25.         Emp obj = emp.queryEmpByEmpNo("8000");  
  26.         System.out.println(obj);  
  27.     }  
  28.       
  29.       
  30.     @Test  
  31.     public void test(){  
  32.         SqlSession session = getSession();  
  33.         EmpMapper emp = session.getMapper(EmpMapper.class);  
  34.         List<Emp> result = emp.queryEmp();  
  35.         for (Emp emp2 : result) {  
  36.             System.out.println(emp2);  
  37.         }  
  38.     }  
  39. }  




xml映射-----------

dept_mapper.xml:

[html] view plain copy
  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.     
  6. <!--   
  7.     接口映射  
  8.     namespace必需跟接口的全名一致  
  9.  -->  
  10. <mapper namespace="cn.et.mybatis.lesson03.resultEntityXml.DeptMapper">  
  11.       
  12.     <!-- column是不区分大小写的,property是区分大小写的 -->  
  13.   <resultMap type="cn.et.mybatis.lesson03.resultEntityXml.Dept" id="myDept">  
  14.         <result column="deptno" property="deptno1"/>  
  15.         <result column="dname" property="dname1"/>  
  16.         <result column="loc" property="loc1"/>  
  17.   </resultMap>  
  18.   <select id="queryDept" resultMap="myDept">  
  19.     select * from dept where deptno=#{0}  
  20.   </select>  
  21.     
  22.       
  23. </mapper>  


测试类:

[java] view plain copy
  1. package cn.et.mybatis.lesson03.resultEntityXml;  
  2.   
  3. import java.io.InputStream;  
  4.   
  5. import org.apache.ibatis.session.SqlSession;  
  6. import org.apache.ibatis.session.SqlSessionFactory;  
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  8.   
  9. public class TestMybatis {  
  10.       
  11.     public static SqlSession getSession(){  
  12.         String resource = "/cn/et/mybatis/lesson03/mybatis.xml";  
  13.         InputStream inputStream = TestMybatis.class.getResourceAsStream(resource);  
  14.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  15.         //打开会话  
  16.         SqlSession session = sqlSessionFactory.openSession();  
  17.         return session;  
  18.     }  
  19.   
  20.     public static void main(String[] args) {  
  21.         SqlSession session = getSession();  
  22.         DeptMapper dept = session.getMapper(DeptMapper.class);  
  23.         Dept result = dept.queryDept("10");  
  24.         System.out.println(result);  
  25.           
  26.     }  
  27.       
  28. }