黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Hibernate映射----(一對多,多對一)

系統 2162 0

//本人使用的數據庫是Mysql

//在數據庫中分別創建兩個表:sex表和muser表

數據庫中的sex表和muser表片段

sex表:

muser表:

Hibernate映射----(一對多,多對一)

//然后對兩個表逆向化工程

一:

//sex表逆向化工程之后得到Sex.java和Sex.hbm.xml兩個文件

Sex.java文件:

    package com.sex.bean;

import java.util.HashSet;
import java.util.Set;

import com.muser.bean.Muser;

/**
 * Sex entity. @author MyEclipse Persistence Tools
 */

public class Sex implements java.io.Serializable {

	// Fields

	private Integer sexKey;
	private String sexValue;
	private Set<Muser> muSet=new HashSet<Muser>();//set集合手動生成,生成它的get和set方法,用來存放muser表中的數據
	// Constructors

	/** default constructor */
	public Sex() {
	}

	public Set<Muser> getMuSet() {
		return muSet;
	}

	public void setMuSet(Set<Muser> muSet) {
		this.muSet = muSet;
	}

	/** full constructor */
	public Sex(String sexValue) {
		this.sexValue = sexValue;
	}

	// Property accessors

	public Integer getSexKey() {
		return this.sexKey;
	}

	public void setSexKey(Integer sexKey) {
		this.sexKey = sexKey;
	}

	public String getSexValue() {
		return this.sexValue;
	}

	public void setSexValue(String sexValue) {
		this.sexValue = sexValue;
	}

}
  


Sex.hbm.xml文件:

<hibernate-mapping>
<class name="com.sex.bean.Sex" table="sex" catalog="hibernate">
<id name="sexKey" type="java.lang.Integer">
<column name="sexKey" />
<generator class="native" />
</id>
<property name="sexValue" type="java.lang.String">
<column name="sexValue" length="20" />
</property>

     <set name="muSet">
        	<key column="sex"></key>
        	<one-to-many class="com.muser.bean.Muser"/><!-- 一對多,所以應指向Muser中的數據,將數據放在set集合中 -->
        </set>
  

</class>
</hibernate-mapping>

二:

muser表逆向化工程之后得到Muser.java和Muser.hbm.xml兩個文件

Muser.java文件:

    package com.muser.bean;

import com.sex.bean.Sex;

/**
 * Muser entity. @author MyEclipse Persistence Tools
 */

public class Muser implements java.io.Serializable {

	// Fields

	private Integer id;
	private String name;
	private String password;
	private Sex sex;    //一定要將自動生成的Integer數據類型改成Sex,用于調用Sex類中的getSexValue()方法,顯示男女性別

	// Constructors

	/** default constructor */
	public Muser() {
	}

	/** full constructor */
	public Muser(String name, String password, Sex sex) {
		this.name = name;
		this.password = password;
		this.sex = sex;
	}

	// Property accessors

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Sex getSex() {
		return this.sex;
	}

	public void setSex(Sex sex) {
		this.sex = sex;
	}

}
  


Muser.hbm.xml文件:

<hibernate-mapping>
<class name="com.muser.bean.Muser" table="muser" catalog="hibernate">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="30" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="100" />
</property>

     <!-- 在使用下面的 <many-to-one>關系映射時,要提前把逆向化工程自動生成的sex刪掉,否則運行時會找不到這個屬性-->
        <many-to-one name="sex" class="com.sex.bean.Sex"><!-- 此sex是Muser類中所聲明Sex對象 -->
        	<column name="sex" precision="8" scale="0"></column><!-- 此sex是數據庫muser表中的sex字段 -->
        </many-to-one>
  

</class>
</hibernate-mapping>

三:最后創建一個測試類ReflectTest

用于顯示出數據庫中數據

    package com.muser.test;

import java.util.List;
import java.util.Set;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import com.muser.bean.Muser;
import com.sex.bean.Sex;


public class ReflectTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Configuration config=new Configuration().configure();
		SessionFactory sf=config.buildSessionFactory();
		Session session=sf.openSession();
		Transaction tx=session.beginTransaction();
		
		Query query=session.createQuery("from Sex");
		
		List<Sex> list=query.list();
		for(Sex sex:list){
//			System.out.println("key:"+s.getSexValue());
//			System.out.println("姓名為:"+s.getMuser());
			Set<Muser> userSet=sex.getMuSet();
			for(Muser us:userSet){
				System.out.println("姓名:"+us.getName());
				System.out.println("密碼:"+us.getPassword());
				System.out.println("性別:"+us.getSex().getSexValue());
			}
		}
		session.close();
		sf.close();
	
	}

}

  




Hibernate映射----(一對多,多對一)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論