mybatis实现表与对象的关联关系_动力节点Java学院整理
发布时间 - 2026-01-11 03:06:42 点击率:次所需要用到的其他工具或技术:

项目管理工具 : Maven
测试运行工具 : Junit
数据库 : Derby
Maven Dependencies:
<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不支持表结构中列名的修改,只能这么做了):
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
<?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目录下)
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目录下)
<?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目录下)
package com.bjpowernode.practice;
import java.util.List;
public interface UserMapper
{
public List<User> getUser();
}
测试类TestMyBatis.Java(src/test/java/com.bjpowernode.practice目录下)
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学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# mybatis表与对象关联
# mybatis关联关系
# Mybatis多表关联查询的实现(DEMO)
# Mybatis 一对多和多对一关联查询问题
# 深入浅出MyBatis中映射文件和实体类的关联性
# 实例讲解Java的MyBatis框架对MySQL中数据的关联查询
# MyBatis实践之动态SQL及关联查询
# MyBatis学习教程(五)-实现关联表查询方法详解
# MyBatis学习笔记(二)之关联关系
# mybatis实现一对一关联映射实例代码
# mybatis多对多关联实战教程(推荐)
# Mybatis中3种关联关系的实现方法示例
# 目录下
# 小编
# 运行环境
# 在此
# 给大家
# 不支持
# 这么做
# 所需要
# 所述
# 给我留言
# 配置文件
# 感谢大家
# 新建一个
# 疑问请
# 有任何
# 关联关系
# src
# resource
# strong
# configuration
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
如何用已有域名快速搭建网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
个人网站制作流程图片大全,个人网站如何注销?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
iOS UIView常见属性方法小结
Android okhttputils现在进度显示实例代码
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
如何基于PHP生成高效IDC网络公司建站源码?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
教学论文网站制作软件有哪些,写论文用什么软件
?
郑州企业网站制作公司,郑州招聘网站有哪些?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
企业网站制作这些问题要关注
如何在香港免费服务器上快速搭建网站?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel如何创建自定义Facades?(详细步骤)
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Android 常见的图片加载框架详细介绍
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
EditPlus 正则表达式 实战(3)
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何用wdcp快速搭建高效网站?
如何做网站制作流程,*游戏网站怎么搭建?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
详解Oracle修改字段类型方法总结
如何快速选择适合个人网站的云服务器配置?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
如何快速使用云服务器搭建个人网站?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel中的withCount方法怎么高效统计关联模型数量
微信小程序 wx.uploadFile无法上传解决办法
魔方云NAT建站如何实现端口转发?
Android利用动画实现背景逐渐变暗
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何快速上传建站程序避免常见错误?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
C++用Dijkstra(迪杰斯特拉)算法求最短路径

