关闭

mybactis多对一

63人阅读 评论(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());

    

    

   }

}

 

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

JPA一对一、一对多、多对多

在address中没有特殊的注解。 在Person中对应到数据库里面就有一个指向Address的外键. 我们也可以增加注释指定外键的列的名字,如下: @OneToOne(cascad...
  • xxfigo
  • xxfigo
  • 2017-06-27 21:47
  • 2477

MyBatis一对多,多对一,多对多

MyBatis中的一对多和对多一,多对多 主要就是resultMap中 association – 一个复杂的类型关联;许多结果将包成这种类型(一对多) collection – 复杂类型的集合...
  • u010857795
  • u010857795
  • 2017-05-09 21:15
  • 1303

mybatis一对多 多对一

一、一对多: 实体类package com.ming.entity;import java.util.List;public class Station { private String S...
  • qq_16055765
  • qq_16055765
  • 2016-07-12 17:51
  • 1111

mybactis的一对多的思想与代码

Mybactis一对多思想以及代码 所谓一对多是思想就是一张表对应多张表,打个很简单的比喻,刚好现在是双11刚刚过,就用淘宝购买东西来比喻,一个用户在淘宝中买了多种东西,每种商品对应着不同的表,而这...
  • qq_38239373
  • qq_38239373
  • 2017-11-13 19:31
  • 38

使用Socket实现Android客户端与Web服务器多对一的双向通信

  • 2017-11-08 13:53
  • 30KB
  • 下载

hibernate(user-role多对多映射)

  • 2016-04-28 23:26
  • 14KB
  • 下载

网路编程多对多聊天

  • 2017-12-22 16:48
  • 1.84MB
  • 下载

swool多对多直播

  • 2017-11-08 09:28
  • 34KB
  • 下载

hibernate多对多关联映射

  • 2013-07-30 23:53
  • 790KB
  • 下载

ibatis多对一代码示例

  • 2013-09-01 17:43
  • 2KB
  • 下载
    个人资料
    • 访问:1247次
    • 积分:170
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档