1. 程式人生 > >mybatis之一對一關聯

mybatis之一對一關聯

esp pool turn resources ger select iat test junit

MapperAsso.xml

 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 <mapper namespace="bean.User">
 7     <!--一對一關聯-->
 8     <select id="selectOneAssoObj"
parameterType="int" resultMap="OneAssoObjRM"> 9 select * from user where id = #{id} 10 </select> 11 <resultMap type="association.AssoObj" id="OneAssoObjRM"> 12 <result property="id" column="id"/> 13 <result property="name" column="name"/> 14 <
result property="age" column="age"/> 15 <association property="salary" column="name" select="selectOneSalary"/> 16 <!--一對多關聯配置備註--> 17 <!--<collection property="salarys" ofType="bean.Salary" column="name" select="selectFewSalarys">--> 18 </resultMap
> 19 20 <select id="selectOneSalary" parameterType="String" resultType="bean.Salary"> 21 select * from salary where name = #{name} 22 </select> 23 24 <!--id:名稱; parameterType傳入參數類型; resultType:返回數據類型--> 25 <select id="selectOneUser" parameterType="int" resultType="bean.User"> 26 select * from user where id = #{id} 27 </select> 28 29 <!--批量查詢--> 30 <select id="selectAllUser" resultMap="userList"> 31 select * from user 32 </select> 33 <resultMap type="first.UserBean" id="userList"> 34 <result property="id" column="id"/> 35 <result property="name" column="name"/> 36 <result property="age" column="age"/> 37 </resultMap> 38 39 40 </mapper>

AssoObj.java

 1 package association;
 2 
 3 import bean.Salary;
 4 
 5 /**
 6  * 數據封裝類
 7  * user class with Salary object
 8  * 一對一關聯Javabean
 9  */
10 public class AssoObj {
11     private int id;
12     private String name;
13     private String age;
14     private Salary salary;
15 
16     public AssoObj() {
17 
18     }
19 
20     public AssoObj(String name, String age) {
21         this.name = name;
22         this.age = age;
23     }
24 
25     public AssoObj(int id, String name, String age, Salary salary) {
26         this.id = id;
27         this.name = name;
28         this.age = age;
29         this.salary = salary;
30     }
31 
32     public String getName() {
33         return name;
34     }
35 
36     public void setName(String name) {
37         this.name = name;
38     }
39 
40     public String getAge() {
41         return age;
42     }
43 
44     public void setAge(String age) {
45         this.age = age;
46     }
47 
48     public int getId() {
49         return id;
50     }
51 
52     public void setId(int id) {
53         this.id = id;
54     }
55 
56     public Salary getSalary() {
57         return salary;
58     }
59 
60     public void setSalary(Salary salary) {
61         this.salary = salary;
62     }
63 
64     @Override
65     public String toString() {
66         return "AssoObj{id:" + id + "; 姓名:" + name +
67                 "; 年齡:" + age + "; Salary對象:" + salary + "}";
68     }
69 }

TestAsso.java

 1 package association;
 2 
 3 import bean.Salary;
 4 import bean.User;
 5 import bean.UserSalary;
 6 import first.UserBean;
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 import org.junit.After;
12 import org.junit.Before;
13 import org.junit.Ignore;
14 import org.junit.Test;
15 import zhujie.UserMapperInterface;
16 
17 import java.io.IOException;
18 import java.io.InputStream;
19 import java.util.List;
20 
21 /*
22 * 一對一關聯舉例
23 *
24 * */
25 public class TestAsso {
26     String resource = "mybatis-config-assosciation.xml";
27     SqlSessionFactory sqlSessionFactory = null;
28     SqlSession session = null;
29 
30     @Before
31     public void before() {
32 //        System.out.println("Before");
33         try {
34             InputStream inputStream = Resources.getResourceAsStream(resource);
35 //            創建工廠
36             sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
37 //            創建session對象
38             session = sqlSessionFactory.openSession();
39 
40         } catch (IOException e) {
41             e.printStackTrace();
42         }
43     }
44 
45     @After
46     public void close() {
47         session.close();
48 //        System.out.println("After");
49     }
50 
51     //    一對一關聯測試用例
52     @Test
53     public void testSelectOneAssoObj() {
54         AssoObj assoObj = session.selectOne("bean.User.selectOneAssoObj", 1);
55         System.out.println("查詢單個AssoObj:" + assoObj);
56     }
57 
58     @Test
59     public void testSelectOneUser() {
60         User user = session.selectOne("bean.User.selectOneUser", 1);
61         System.out.println("查詢單個User:" + user);
62     }
63 
64     @Test
65     public void testSelectAllUser() {
66         List<User> listUser = session.selectList("bean.User.selectAllUser");
67         System.out.println("記錄個數:" + listUser.size());
68         System.out.println(listUser);
69     }
70 
71     @Test
72     public void testSelectOneSalary() {
73         Salary salary = session.selectOne("bean.User.selectOneSalary", "Tom");
74         System.out.println("查詢單個Salary:" + salary);
75     }
76 
77 
78 }

mybatis-config-assosciation.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     <!--從外部配置文件導入jdbc信息-->
 7     <properties resource="jdbc.properties"></properties>
 8 
 9     <environments default="development">
10         <environment id="development">
11             <transactionManager type="JDBC"/>
12             <dataSource type="POOLED">
13                 <property name="driver" value="${driver}"/>
14                 <property name="url" value="${url}"/>
15                 <property name="username" value="${username}"/>
16                 <property name="password" value="${password}"/>
17             </dataSource>
18         </environment>
19     </environments>
20 
21     <!--指定映射資源文件-->
22     <mappers>
23         <mapper resource="association/MapperAsso.xml"/>
24 
25     </mappers>
26 </configuration>

mybatis之一對一關聯