mybatis实现表与对象的关联关系_动力节点Java学院整理

2025-05-29 0 80

所需要用到的其他工具或技术:

项目管理工具 : Maven

测试运行工具 : Junit

数据库: Derby

Maven Dependencies:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
<dependencies>

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.2.7</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.9</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.apache.derby</groupId>

<artifactId>derby</artifactId>

<version>10.10.2.0</version>

</dependency>

<dependency>

<groupId>org.apache.derby</groupId>

<artifactId>derbyclient</artifactId>

<version>10.10.2.0</version>

</dependency>

</dependencies>

SQL 建及数据插入(新建一个USER_TEST_TB_RELATIONSHIP,然后CopyUSER_TEST_TB的数据,Derby不支持结构中列名的修改,只能这么做了):

?

1

2

3

4

5

6

7
CREATE TABLE USER_TEST_TB_RELATIONSHIP(

USER_ID INT PRIMARY KEY,

USER_USERNAME VARCHAR(20) NOT NULL,

USER_PASSWORD VARCHAR(20) NOT NULL,

USER_NICKNAME VARCHAR(20) NOT NULL

);

INSERT INTO USER_TEST_TB_RELATIONSHIP(USER_ID,USER_USERNAME,USER_PASSWORD,USER_NICKNAME) SELECT ID,USERNAME,PASSWORD,NICKNAME FROM USER_TEST_TB;

Mybatis配置文件 src/main/resource源目录下

test-mybatis-configuration.xml

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<properties>

<property name="driver" value="org.apache.derby.jdbc.ClientDriver" />

<property name="url" value="jdbc:derby://localhost:1527/bjpowernode;create=true" />

</properties>

<environments default="development">

<environment id="development">

<transactionManager type="JDBC" />

<dataSource type="POOLED">

<property name="driver" value="${driver}" />

<property name="url" value="${url}" />

</dataSource>

</environment>

</environments>

<mappers>

<mapper resource="com/bjpowernode/practice/UserMapper.xml" />

</mappers>

</configuration>

User.java对象类(src/main/java/com/bjpowernode/practice目录下)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40
package com.bjpowernode.practice;

public class User

{

private Integer id;

private String username;

private String password;

private String nickname;

public Integer getId()

{

return id;

}

public void setId(Integer id)

{

this.id = id;

}

public String getUsername()

{

return username;

}

public void setUsername(String username)

{

this.username = username;

}

public String getPassword()

{

return password;

}

public void setPassword(String password)

{

this.password = password;

}

public String getNickname()

{

return nickname;

}

public void setNickname(String nickname)

{

this.nickname = nickname;

}

}

UserMapper.xml Mapper文件(src/main/java/com.bjpowernode.practice目录下)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.bjpowernode.practice.UserMapper">

<!-- 对象属性和表字段的对应 -->

<resultMap id="userResultMap" type="com.bjpowernode.practice.User">

<result property="id" column="USER_ID"/>

<result property="username" column="USER_USERNAME"/>

<result property="password" column="USER_PASSWORD"/>

<result property="nickname" column="USER_NICKNAME"/>

</resultMap>

<select id="getUser" resultMap="userResultMap">

select *

from USER_TEST_TB_RELATIONSHIP

</select>

</mapper>

UserMapper.java Mapper类(src/main/java/com.bjpowernode.practice目录下)

?

1

2

3

4

5

6
package com.bjpowernode.practice;

import java.util.List;

public interface UserMapper

{

public List<User> getUser();

}

测试类TestMyBatis.Java(src/test/java/com.bjpowernode.practice目录下)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62
package com.bjpowernode.practice;

import java.io.InputStream;

import java.text.MessageFormat;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Before;

import org.junit.Test;

public class TestMyBatis

{

private String source;

private InputStream inputStream;

private SqlSessionFactory sqlSessionFactory;

@Before

public void setUp()

{

/**

* 准备Mybatis运行环境

*/

source = "test-mybatis-configuration.xml";

inputStream = TestMyBatis.class.getClassLoader().getResourceAsStream(source);

sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

}

@Test

public void testGet()

{

try

{

// 获取Session连接

SqlSession session = sqlSessionFactory.openSession();

// 获取Mapper

UserMapper userMapper = session.getMapper(UserMapper.class);

// 显示User信息

System.out.println("Test Get start...");

this.printUsers(userMapper.getUser());

System.out.println("Test Get finished...");

}

catch (Exception e)

{

e.printStackTrace();

}

}

/**

*

* 打印用户信息到控制台

*

* @param users

*/

private void printUsers(final List<User> users)

{

int count = 0;

for (User user : users)

{

System.out.println(MessageFormat.format("==User[{0}]=================", ++count));

System.out.println("User Id: " + user.getId());

System.out.println("User UserName: " + user.getUsername());

System.out.println("User Password: " + user.getPassword());

System.out.println("User nickname: " + user.getNickname());

}

}

}

总结

以上所述是小编给大家介绍的mybatis实现对象关联关系_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 mybatis实现表与对象的关联关系_动力节点Java学院整理 https://www.kuaiidc.com/114821.html

相关文章

发表评论
暂无评论