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(迪杰斯特拉)算法求最短路径