Skip to content

Commit 5e2fc17

Browse files
committed
test case
1 parent e05d686 commit 5e2fc17

File tree

8 files changed

+296
-0
lines changed

8 files changed

+296
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
-- ----------------------------
2+
-- Table structure for role
3+
-- ----------------------------
4+
CREATE TABLE role (
5+
id int,
6+
role_name varchar(10)
7+
);
8+
9+
-- ----------------------------
10+
-- Records of role
11+
-- ----------------------------
12+
INSERT INTO role (id,role_name)
13+
VALUES ('1', '老师');
14+
INSERT INTO role (id,role_name)
15+
VALUES ('2', '学生');
16+
INSERT INTO role (id,role_name)
17+
VALUES ('3', '班主任');
18+
INSERT INTO role (id,role_name)
19+
VALUES ('4', '学习委员');
20+
21+
CREATE TABLE user (
22+
id int,
23+
username varchar(32),
24+
);
25+
26+
-- ----------------------------
27+
-- Records of user
28+
-- ----------------------------
29+
INSERT INTO user (id,username)
30+
VALUES ('1', '赵六');
31+
INSERT INTO user (id,username)
32+
VALUES ('2', '李四');
33+
INSERT INTO user (id,username)
34+
VALUES ('3', '毛六');
35+
INSERT INTO user (id,username)
36+
VALUES ('4', '王五');
37+
38+
-- ----------------------------
39+
-- Table structure for `user_role`
40+
-- ----------------------------
41+
CREATE TABLE user_role (
42+
id int,
43+
role_id int,
44+
user_id int
45+
);
46+
47+
-- ----------------------------
48+
-- Records of user_role
49+
-- ----------------------------
50+
INSERT INTO user_role (id,role_id,user_id)
51+
VALUES ('1', '2', '4');
52+
INSERT INTO user_role (id,role_id,user_id)
53+
VALUES ('2', '3', '1');
54+
INSERT INTO user_role (id,role_id,user_id)
55+
VALUES ('3', '1', '2');
56+
INSERT INTO user_role (id,role_id,user_id)
57+
VALUES ('4', '2', '3');
58+
INSERT INTO user_role (id,role_id,user_id)
59+
VALUES ('5', '4', '4');
60+
INSERT INTO user_role (id,role_id,user_id)
61+
VALUES ('6', '1', '1');
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package org.apache.ibatis.submitted.annotion_many_one_add_resultmapid;
2+
3+
import org.apache.ibatis.BaseDataTest;
4+
import org.apache.ibatis.io.Resources;
5+
import org.apache.ibatis.session.SqlSession;
6+
import org.apache.ibatis.session.SqlSessionFactory;
7+
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
8+
import org.junit.jupiter.api.Assertions;
9+
import org.junit.jupiter.api.BeforeAll;
10+
import org.junit.jupiter.api.Test;
11+
12+
import java.io.Reader;
13+
import java.util.List;
14+
15+
class MyBatisTest {
16+
17+
private static SqlSessionFactory sqlSessionFactory;
18+
19+
@BeforeAll
20+
static void setUp() throws Exception {
21+
// create an SqlSessionFactory
22+
try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/annotion_many_one_add_resultmapid/SqlMapConfig.xml")) {
23+
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
24+
}
25+
26+
// populate in-memory database
27+
BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
28+
"org/apache/ibatis/submitted/annotion_many_one_add_resultmapid/CreateDB.sql");
29+
}
30+
31+
@Test
32+
void test() {
33+
try (SqlSession sqlSession = sqlSessionFactory.openSession()){
34+
UserDao mapper = sqlSession.getMapper(UserDao.class);
35+
List<User> users = mapper.flindAll();
36+
System.out.println(users);
37+
Assertions.assertNotNull(users, "users must not be null");
38+
Assertions.assertEquals(4, users.size(), "should return 4 results");
39+
Assertions.assertEquals(2, users.get(0).getRoles().size(), "should have 2 roles");
40+
}
41+
}
42+
43+
@Test
44+
void test2() {
45+
try (SqlSession sqlSession = sqlSessionFactory.openSession()){
46+
UserDao mapper = sqlSession.getMapper(UserDao.class);
47+
List<User> users = mapper.flindAll2();
48+
System.out.println(users);
49+
Assertions.assertNotNull(users, "users must not be null");
50+
Assertions.assertEquals(4, users.size(), "should return 4 results");
51+
Assertions.assertEquals(2, users.get(0).getRoles().size(), "should have 2 roles");
52+
}
53+
}
54+
55+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.apache.ibatis.submitted.annotion_many_one_add_resultmapid;
2+
3+
public class Role {
4+
private Integer id; //int
5+
6+
@Override
7+
public String toString() {
8+
return "Role{" +
9+
"id=" + id +
10+
", roleName='" + roleName + '\'' +
11+
'}';
12+
}
13+
14+
private String roleName;//varchar
15+
16+
public Integer getId() {
17+
return id;
18+
}
19+
20+
public void setId(Integer id) {
21+
this.id = id;
22+
}
23+
24+
public String getRoleName() {
25+
return roleName;
26+
}
27+
28+
public void setRoleName(String roleName) {
29+
this.roleName = roleName;
30+
}
31+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* Copyright (c) 2019 ucsmy.com, All rights reserved.
3+
*/
4+
package org.apache.ibatis.submitted.annotion_many_one_add_resultmapid;
5+
6+
import org.apache.ibatis.annotations.Result;
7+
import org.apache.ibatis.annotations.Results;
8+
import org.apache.ibatis.annotations.Select;
9+
10+
import java.util.List;
11+
12+
/**
13+
* @Description:
14+
* @Author: lvyang
15+
* @Created Date: 2019年12月10日
16+
* @LastModifyDate:
17+
* @LastModifyBy:
18+
* @Version:
19+
*/
20+
public interface RoleDao {
21+
@Select("select * from role")
22+
@Results(
23+
id="roleMap1",
24+
value = {
25+
@Result(id = true,column="role_id",property = "id"),
26+
@Result(column="role_name",property = "roleName")
27+
}
28+
)
29+
public List<Role> findAll();
30+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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="org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao">
6+
<resultMap id="roleMap2" type="org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.Role">
7+
<id column="role_id" property="id"/>
8+
<result column="role_name" property="roleName" />
9+
</resultMap>
10+
</mapper>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
<environments default="development">
7+
<environment id="development">
8+
<transactionManager type="JDBC"/>
9+
<dataSource type="UNPOOLED">
10+
<property name="driver" value="org.hsqldb.jdbcDriver" />
11+
<property name="url" value="jdbc:hsqldb:mem:annotion_many_one_add_resultmapid" />
12+
<property name="username" value="sa" />
13+
</dataSource>
14+
</environment>
15+
</environments>
16+
17+
<mappers>
18+
<mapper class="org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao"/>
19+
<mapper class="org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.UserDao"/>
20+
</mappers>
21+
</configuration>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.apache.ibatis.submitted.annotion_many_one_add_resultmapid;
2+
3+
4+
import java.util.List;
5+
6+
public class User {
7+
private Integer id; //int
8+
private String username; //varchar
9+
private List<Role> roles;
10+
11+
@Override
12+
public String toString() {
13+
return "User{" +
14+
"id=" + id +
15+
", username='" + username + '\'' +
16+
", roles=" + roles +
17+
'}';
18+
}
19+
20+
public Integer getId() {
21+
return id;
22+
}
23+
24+
public void setId(Integer id) {
25+
this.id = id;
26+
}
27+
28+
public String getUsername() {
29+
return username;
30+
}
31+
32+
public void setUsername(String username) {
33+
this.username = username;
34+
}
35+
36+
public List<Role> getRoles() {
37+
return roles;
38+
}
39+
40+
public void setRoles(List<Role> roles) {
41+
this.roles = roles;
42+
}
43+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/**
2+
* Copyright (c) 2019 ucsmy.com, All rights reserved.
3+
*/
4+
package org.apache.ibatis.submitted.annotion_many_one_add_resultmapid;
5+
6+
import org.apache.ibatis.annotations.Many;
7+
import org.apache.ibatis.annotations.Result;
8+
import org.apache.ibatis.annotations.Results;
9+
import org.apache.ibatis.annotations.Select;
10+
11+
import java.util.List;
12+
13+
/**
14+
* @Description:
15+
* @Author: lvyang
16+
* @Created Date: 2019年12月10日
17+
* @LastModifyDate:
18+
* @LastModifyBy:
19+
* @Version:
20+
*/
21+
public interface UserDao {
22+
@Select("select\n" +
23+
" u.id,u.username,r.id role_id,r.role_name\n" +
24+
" from user u\n" +
25+
" left join user_role ur on u.id =ur.user_id\n" +
26+
" left join role r on ur.role_id = r.id")
27+
@Results({
28+
@Result(id = true,column="id",property = "id"),
29+
@Result(column="username",property = "username"),
30+
@Result(property = "roles",many = @Many(resultMapId = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap1"))
31+
})
32+
public List<User> flindAll();
33+
34+
@Select("select\n" +
35+
" u.id,u.username,r.id role_id,r.role_name\n" +
36+
" from user u\n" +
37+
" left join user_role ur on u.id =ur.user_id\n" +
38+
" left join role r on ur.role_id = r.id")
39+
@Results({
40+
@Result(id = true,column="id",property = "id"),
41+
@Result(column="username",property = "username"),
42+
@Result(property = "roles",many = @Many(resultMapId = "org.apache.ibatis.submitted.annotion_many_one_add_resultmapid.RoleDao.roleMap2"))
43+
})
44+
public List<User> flindAll2();
45+
}

0 commit comments

Comments
 (0)