mybactis多对一

104人阅读 评论(0) 收藏 举报

Mybactis多对一

mybactis的多对一的思想与一对多的思想并没有太大的差别,只不过是将期反过来,具体代码变化也不大,只是将实体映射类中的collection属性改为association属性,并将对应的值改变

需要的jar包:1mybatis-3.2.3.jar

                             2    mysql-connector-java-5.1.25-bin.jar

具体代码如下:

Users实体类:

package com.huweiyang.bean;

 

import java.io.Serializable;

import java.util.List;

 

publicclassUsers implements Serializable{

     privateintid;

     private String username;

     private String main;

  

     publicint getId() {

        returnid;

     }

     publicvoid setId(intid) {

        this.id = id;

     }

     public String getUsername() {

        returnusername;

     }

     publicvoid setUsername(String username) {

        this.username = username;

     }

     public String getMain() {

        returnmain;

     }

     publicvoid setMain(String main) {

        this.main = main;

     }

    

}

Post实体类:

package com.huweiyang.bean;

 

import java.io.Serializable;

 

publicclassPost implements Serializable{

  

   privateintpost_id;

   private Users user;

   publicint getPost_id() {

     returnpost_id;

   }

   publicvoid setPost_id(intpost_id) {

     this.post_id = post_id;

   }

   public Users getUser() {

     returnuser;

   }

   publicvoid setUser(Users user) {

     this.user = user;

   }

   public String getPsrt() {

     returnpsrt;

   }

   publicvoid setPsrt(String psrt) {

     this.psrt = psrt;

   }

   public String getMoter() {

     returnmoter;

   }

   publicvoid setMoter(String moter) {

     this.moter = moter;

   }

   private String psrt;

   private String moter;

 

}

实体类的映射:

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

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTDMapper 3.0//EN" "mybatis-3-mapper.dtd">

<mapper namespace="com.huweiyang.bean.Post">

 

   <resultMap id="resultuserMap" type="Post">

     <result property="post_id" column="post_id"/>

     <result property="psrt" column="psrt"/>

     <result property="moter" column="moter"/>

     <association property="user" javaType="Users">

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

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

        <result property="main" column="main"/>

     </association>

   </resultMap>

   <select id="getUser" resultMap="resultuserMap"parameterType="int">

          SELECTu.*,p.*

     FROMusers u, post p

     WHEREu.id=p.usersid AND p.post_id=#{id}

    

   </select>

</mapper>

 

Mybactis配置:

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

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTDconfig 3.0//EN" "mybatis-3-config.dtd">

<configuration>

   <typeAliases>

     <typeAlias alias="Users" type="com.huweiyang.bean.Users"/>

     <typeAlias type="com.huweiyang.bean.Post" alias="Post"/>

   </typeAliases>

  

   <environments default="development">

     <environment id="development">

        <transactionManager type="JDBC" />

        <dataSource type="POOLED">

          <property name="driver" value="com.mysql.jdbc.Driver"/>

          <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybaits"/>

          <property name="username" value="root"/>

          <property name="password" value="lookme"/>

        </dataSource>

     </environment>

   </environments>

  

   <mappers>

     <mapper resource="com/huweiyang/bean/post.xml"/>

   </mappers>

</configuration>

测试类:

package com.huweiyang.mapping;

 

import java.io.IOException;

import java.io.Reader;

 

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

 

import com.huweiyang.bean.Post;

import com.huweiyang.bean.Users;

 

publicclassMapping {

    

   publicstaticvoid main(String[] args) throws IOException {

//   获取sqlsession对象

     Readersr = Resources.getResourceAsReader("config.xml");

     SqlSessionFactorysqlsessionf= newSqlSessionFactoryBuilder().build(sr);

     SqlSessionsqlsesion = sqlsessionf.openSession();

//   指定路径

     Postpost= sqlsesion.selectOne("com.huweiyang.bean.Post.getUser",1);

//   输出post表中对应的id

     System.out.println(post.getPsrt());

//   获取users实体类的对象

     Usersuser=post.getUser();

//   输出users表中对应的username

     System.out.println(user.getUsername());

    

    

   }

}

 

 

查看评论

spring和mybactis的整合

spring和mybactis的整合 Spring和mybactis的整合其实很简单,在Spring中我们可以将bean当做事务来管理,而在这里我们将mybactis中的接口也可以看是一个bean,...
  • qq_38239373
  • qq_38239373
  • 2017年11月17日 15:21
  • 156

hibernate多对一单向配置

下面对hibernate多对一单向配置做好笔记。 多对一就比较简单了,先建立 Group 类和 User 类,因为这次是 多对一,所以在 多的一方做设置即可,在 User 类中加个对 Group的引...
  • u010702229
  • u010702229
  • 2013年10月27日 15:51
  • 1581

hibernate 一对多 多对一 关系的理解

1、单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联 双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时 如果只需要获取对应部门信息(u...
  • l55iuming
  • l55iuming
  • 2015年10月20日 20:58
  • 3013

GoldenGate--多对一

前提:  源1:192.168.0.100  源2:192.168.0.101  目标:192.168.0.99一、配置数据源添加ggusr用户下表的log,放到日志里  dblogin userid...
  • Phoenix_99
  • Phoenix_99
  • 2011年05月15日 22:42
  • 2577

JPA 菜鸟教程 3 单向多对一

JPA中的@ManyToOne 主要属性 - name(必需): 设定“many”方所包含的“one”方所对应的持久化类的属性名 - column(可选): 设定one方的主键,即持久化类的属...
  • JE_GE
  • JE_GE
  • 2016年12月09日 23:13
  • 1998

Hibernate单向多对一级联删除引发的问题

Hibernate单向多对一在级联删除时,会出现一些问题。 下面模拟我遇到的问题: 这次模拟与之前的一次模拟方法一直,博客:http://blog.csdn.net/openjdk8/article/...
  • u012356022
  • u012356022
  • 2014年08月11日 21:41
  • 3032

JPA多对一单向关联

在实际开发过程中,JPA多对一单向关联是使用最多的关联方式。 下面是订单与订单项的配置关系。 订单(Order):一的一方,不进行任何配置 @Entity @Table(name="orders") ...
  • u011983531
  • u011983531
  • 2015年09月25日 09:30
  • 1497

Hibernate多对一及一对多关联关系理解及区别

关联关系的本质是将关联关系映射到数据库中。关联关系在对象模型中体现为内存中的一个或多个引用。  一对多关系: 一对多关系 分为“单向一对多/多对一关系”和“双向多对一”关系。     • “单向一对多...
  • henryzhang2009
  • henryzhang2009
  • 2010年04月15日 15:12
  • 6734

关系映射一对多,多对一详解

关系映射一对多,多对一 1,  一对多,如:部门表与用户表,一个部门是不是有多个用户,但是一个用户有且只有一个部门,很清晰了吧 2,  现在先写方部门类:Department.java     ...
  • Java958199586
  • Java958199586
  • 2011年12月08日 13:35
  • 2130

单向多对一

单向多对一关联     在关系型数据库理论中,“多对一”关联同于“一对多”关联,且为了消除数据冗余,在两个关系之间不存在“多对多”关联,“多对多”关联要通过连接表来实现。因此在关系型数据库中只有“一对...
  • lyfvslw
  • lyfvslw
  • 2010年11月18日 22:53
  • 2534
    个人资料
    持之以恒
    等级:
    访问量: 3900
    积分: 217
    排名: 34万+
    文章分类
    文章存档