Skip to content

Commit 0b0ef75

Browse files
committed
演示ResultMap的使用
1 parent 8f1f6e3 commit 0b0ef75

File tree

9 files changed

+207
-0
lines changed

9 files changed

+207
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.kaishengit.entity;
2+
3+
import java.util.List;
4+
5+
public class Dept {
6+
7+
private Integer id;
8+
private String deptName;
9+
private List<User> userList;
10+
11+
12+
public Integer getId() {
13+
return id;
14+
}
15+
public void setId(Integer id) {
16+
this.id = id;
17+
}
18+
public String getDeptName() {
19+
return deptName;
20+
}
21+
public void setDeptName(String deptName) {
22+
this.deptName = deptName;
23+
}
24+
public List<User> getUserList() {
25+
return userList;
26+
}
27+
public void setUserList(List<User> userList) {
28+
this.userList = userList;
29+
}
30+
31+
32+
}

mybatis/src/main/java/com/kaishengit/entity/User.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ public class User {
66
private String userName;
77
private String address;
88
private String password;
9+
private Integer deptId;
10+
private Dept dept;
11+
912

1013
public Integer getId() {
1114
return id;
@@ -31,6 +34,19 @@ public String getPassword() {
3134
public void setPassword(String password) {
3235
this.password = password;
3336
}
37+
38+
public Integer getDeptId() {
39+
return deptId;
40+
}
41+
public void setDeptId(Integer deptId) {
42+
this.deptId = deptId;
43+
}
44+
public Dept getDept() {
45+
return dept;
46+
}
47+
public void setDept(Dept dept) {
48+
this.dept = dept;
49+
}
3450
@Override
3551
public String toString() {
3652
return "User [id=" + id + ", userName=" + userName + ", address=" + address + ", password=" + password + "]";
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.kaishengit.mapper;
2+
3+
import com.kaishengit.entity.Dept;
4+
5+
public interface DeptMapper {
6+
7+
Dept findByIdLoadUser(Integer id);
8+
9+
}

mybatis/src/main/java/com/kaishengit/mapper/UserMapper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ public interface UserMapper {
1111
void save(User user);
1212
void update(User user);
1313
void delById(Integer id);
14+
15+
List<User> findAllLoadDept();
16+
1417
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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+
<mapper namespace="com.kaishengit.mapper.DeptMapper">
6+
7+
<select id="findByIdLoadUser" parameterType="int" resultMap="deptMap">
8+
SELECT
9+
t_dept.id,
10+
dept_name,
11+
t_user.id AS userid,
12+
user_name,
13+
address,
14+
`password`,
15+
dept_id
16+
FROM
17+
t_dept
18+
LEFT JOIN t_user ON t_dept.id = t_user.dept_id
19+
WHERE
20+
t_dept.id = #{id}
21+
</select>
22+
23+
<resultMap type="Dept" id="deptMap">
24+
<id column="id" property="id"/>
25+
<result column="dept_name" property="deptName"/>
26+
<collection property="userList" ofType="User">
27+
<id column="userid" property="id"/>
28+
<result column="user_name" property="userName"/>
29+
<result column="address" property="address"/>
30+
<result column="password" property="password"/>
31+
<result column="dept_id" property="deptId"/>
32+
</collection>
33+
</resultMap>
34+
35+
</mapper>

mybatis/src/main/resources/mapper/UserMapper.xml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,52 @@
1919
select * from t_user
2020
</select>
2121

22+
<!-- ONGL 进行映射 -->
23+
<select id="findAllLoadDept" resultType="User">
24+
SELECT
25+
t_user.id,
26+
user_name,
27+
address,
28+
PASSWORD,
29+
dept_id,
30+
t_dept.id AS `dept.id`,
31+
t_dept.dept_name AS `dept.deptName`
32+
FROM
33+
t_user,
34+
t_dept
35+
WHERE
36+
t_user.dept_id = t_dept.id
37+
</select>
38+
39+
40+
41+
42+
43+
44+
45+
46+
47+
48+
<!-- <select id="findAllLoadDept" resultMap="userMap">
49+
select t_user.id,user_name,address,password,dept_id,dept_name from t_user,t_dept
50+
where t_user.dept_id = t_dept.id
51+
</select> -->
52+
53+
<!-- 自定义结果集映射:告诉MyBaits如何将列和类的属性进行对应 -->
54+
<!-- <resultMap type="User" id="userMap">
55+
<id column="id" property="id"/>
56+
<result column="user_name" property="userName"/>
57+
<result column="address" property="address"/>
58+
<result column="password" property="password"/>
59+
<result column="dept_id" property="deptId"/>
60+
<association property="dept" javaType="Dept">
61+
<id column="dept_id" property="id"/>
62+
<result column="dept_name" property="deptName"/>
63+
</association>
64+
</resultMap> -->
65+
66+
67+
2268
<insert id="save" parameterType="User">
2369
insert into t_user(user_name,password,address) values(#{userName},#{password},#{address})
2470
</insert>

mybatis/src/main/resources/mybatis.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<!-- 注册别名 -->
1313
<typeAliases>
1414
<typeAlias type="com.kaishengit.entity.User" alias="User"/>
15+
<typeAlias type="com.kaishengit.entity.Dept" alias="Dept"/>
1516
</typeAliases>
1617

1718
<environments default="dev">
@@ -31,6 +32,7 @@
3132
<!-- 加载Mapper配置文件 -->
3233
<mappers>
3334
<mapper resource="mapper/UserMapper.xml"/>
35+
<mapper resource="mapper/DeptMapper.xml"/>
3436
</mappers>
3537

3638
</configuration>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.kaishengit.mybatis;
2+
3+
import java.util.List;
4+
5+
import org.apache.ibatis.session.SqlSession;
6+
import org.junit.Test;
7+
8+
import com.kaishengit.entity.Dept;
9+
import com.kaishengit.entity.User;
10+
import com.kaishengit.mapper.DeptMapper;
11+
import com.kaishengit.util.MyBatisUtil;
12+
13+
public class DeptMapperTest {
14+
15+
@Test
16+
public void findByIdLoadUser() {
17+
18+
SqlSession sqlSession = MyBatisUtil.getSqlSession();
19+
DeptMapper deptMapper = sqlSession.getMapper(DeptMapper.class);
20+
21+
Dept dept = deptMapper.findByIdLoadUser(1);
22+
System.out.println(dept.getDeptName());
23+
24+
List<User> userList = dept.getUserList();
25+
for(User user : userList) {
26+
System.out.println(user.getUserName());
27+
}
28+
29+
30+
sqlSession.close();
31+
32+
33+
}
34+
35+
}

mybatis/src/test/java/com/kaishengit/mybatis/UserMapperTest.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
import com.kaishengit.mapper.UserMapper;
66
import com.kaishengit.util.MyBatisUtil;
77

8+
import java.util.List;
9+
810
import org.apache.ibatis.session.SqlSession;
11+
import org.junit.After;
12+
import org.junit.Before;
913
import org.junit.Test;
1014
import org.slf4j.Logger;
1115
import org.slf4j.LoggerFactory;
@@ -14,6 +18,20 @@ public class UserMapperTest {
1418

1519
private Logger logger = LoggerFactory.getLogger(UserMapperTest.class);
1620

21+
private SqlSession sqlSession;
22+
private UserMapper userMapper;
23+
24+
@Before
25+
public void before() {
26+
sqlSession = MyBatisUtil.getSqlSession();
27+
userMapper = sqlSession.getMapper(UserMapper.class);
28+
}
29+
30+
@After
31+
public void after() {
32+
sqlSession.close();
33+
}
34+
1735
@Test
1836
public void findById() {
1937
SqlSession sqlSession = MyBatisUtil.getSqlSession();
@@ -51,6 +69,17 @@ public void save() {
5169
}
5270

5371

72+
@Test
73+
public void findAllLoadDept() {
74+
75+
List<User> userList = userMapper.findAllLoadDept();
76+
77+
for(User user : userList) {
78+
logger.debug("{} -> {}",user.getUserName(),user.getDept().getDeptName());
79+
}
80+
81+
}
82+
5483

5584

5685

0 commit comments

Comments
 (0)