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 】
相关推荐:
Laravel怎么使用artisan命令缓存配置和视图
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel如何处理异常和错误?(Handler示例)
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Laravel如何集成Inertia.js与Vue/React?(安装配置)
Laravel如何优化应用性能?(缓存和优化命令)
佛山企业网站制作公司有哪些,沟通100网上服务官网?
轻松掌握MySQL函数中的last_insert_id()
如何在自有机房高效搭建专业网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何打造高效商业网站?建站目的决定转化率
如何确认建站备案号应放置的具体位置?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel如何实现用户密码重置功能?(完整流程代码)
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Bootstrap CSS布局之列表
Swift开发中switch语句值绑定模式
三星网站视频制作教程下载,三星w23网页如何全屏?
使用Dockerfile构建java web环境
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何在IIS7上新建站点并设置安全权限?
想要更高端的建设网站,这些原则一定要坚持!
Android利用动画实现背景逐渐变暗
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
如何快速生成专业多端适配建站电话?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
网站建设整体流程解析,建站其实很容易!
如何用wdcp快速搭建高效网站?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何快速搭建支持数据库操作的智能建站平台?
PHP 500报错的快速解决方法
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何在宝塔面板中创建新站点?
Laravel如何使用Gate和Policy进行授权?(权限控制)
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
如何在万网开始建站?分步指南解析
Laravel如何配置Horizon来管理队列?(安装和使用)
智能起名网站制作软件有哪些,制作logo的软件?

