mybactis多对一

来源:互联网 发布:2017手机淘宝主图尺寸 编辑:程序博客网 时间:2024/06/05 18:06

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;

importjava.util.List;

 

publicclassUsersimplements Serializable{

     privateintid;

     private Stringusername;

     private Stringmain;

  

     publicint getId() {

        returnid;

     }

     publicvoid setId(intid) {

        this.id =id;

     }

     public String getUsername() {

        returnusername;

     }

     publicvoid setUsername(Stringusername) {

        this.username =username;

     }

     public String getMain() {

        returnmain;

     }

     publicvoid setMain(Stringmain) {

        this.main =main;

     }

    

}

Post实体类:

package com.huweiyang.bean;

 

import java.io.Serializable;

 

publicclassPostimplements Serializable{

  

   privateintpost_id;

   private Usersuser;

   publicint getPost_id() {

     returnpost_id;

   }

   publicvoid setPost_id(intpost_id) {

     this.post_id =post_id;

   }

   public Users getUser() {

     returnuser;

   }

   publicvoid setUser(Usersuser) {

     this.user =user;

   }

   public String getPsrt() {

     returnpsrt;

   }

   publicvoid setPsrt(Stringpsrt) {

     this.psrt =psrt;

   }

   public String getMoter() {

     returnmoter;

   }

   publicvoid setMoter(Stringmoter) {

     this.moter =moter;

   }

   private Stringpsrt;

   private Stringmoter;

 

}

实体类的映射:

<?xmlversion="1.0"encoding="UTF-8"?>

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

<mappernamespace="com.huweiyang.bean.Post">

 

   <resultMapid="resultuserMap"type="Post">

     <resultproperty="post_id"column="post_id"/>

     <resultproperty="psrt"column="psrt"/>

     <resultproperty="moter"column="moter"/>

     <associationproperty="user"javaType="Users">

        <resultproperty="id"column="usersid"/>

        <resultproperty="username"column="username"/>

        <resultproperty="main"column="main"/>

     </association>

   </resultMap>

   <selectid="getUser"resultMap="resultuserMap"parameterType="int">

          SELECTu.*,p.*

     FROMusers u, post p

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

    

   </select>

</mapper>

 

Mybactis配置:

<?xmlversion="1.0"encoding="UTF-8"?>

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

<configuration>

   <typeAliases>

     <typeAliasalias="Users"type="com.huweiyang.bean.Users"/>

     <typeAliastype="com.huweiyang.bean.Post"alias="Post"/>

   </typeAliases>

  

   <environmentsdefault="development">

     <environmentid="development">

        <transactionManagertype="JDBC"/>

        <dataSourcetype="POOLED">

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

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

          <propertyname="username"value="root"/>

          <propertyname="password"value="lookme"/>

        </dataSource>

     </environment>

   </environments>

  

   <mappers>

     <mapperresource="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());

    

    

   }

}

 

 

原创粉丝点击