mybactis多对一

原创 2017年11月15日 11:18:18

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());

    

    

   }

}

 

 

相关文章推荐

hibernate(user-role多对多映射)

  • 2016年04月28日 23:26
  • 14KB
  • 下载

一个Hibernate多对多实例

下面贴上经典的多对多实例:用户与角色。直接上代码。 用户User: package cn.qeli.ums.entity; import java.util.HashSet; import java...
  • zavens
  • zavens
  • 2012年08月22日 22:19
  • 26160

swool多对多直播

  • 2017年11月08日 09:28
  • 34KB
  • 下载

hibernate多对多关联映射

  • 2013年07月30日 23:53
  • 790KB
  • 下载

hibernate中的一对多与多对一的详细配置解析

1.Employee package cn.itcast.b_one2Many; public class Employee { private int empId; private St...

ibatis多对一代码示例

  • 2013年09月01日 17:43
  • 2KB
  • 下载

hibernate映射关系 一对多&多对一

接着上篇博客继续今天的主题:一对多,和多对一的关系映射实现。之所以把这两个关系放在一起说,不考虑方向,一对多和多对一还有区别吗?          一对多 vs 多对一     相同点: ...

Mybatis多对多关联查询

  • 2016年03月15日 21:54
  • 1.12MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybactis多对一
举报原因:
原因补充:

(最多只允许输入30个字)