日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > 數(shù)據(jù)庫應(yīng)用 > 映射關(guān)系級(jí)別注解

映射關(guān)系級(jí)別注解

來源:程序員人生   發(fā)布時(shí)間:2016-08-15 08:35:26 閱讀次數(shù):3217次

映照關(guān)系級(jí)別注解

   1對(duì)1單向外鍵

           @OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="pid",unique=true)
注意:保存時(shí)應(yīng)當(dāng)先保存外鍵對(duì)象,在保存主表對(duì)象
   實(shí)例:將環(huán)境配置好,所需要的包前邊已提到過,

      學(xué)生實(shí)體類:
            
package com.oto; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private IdCard card;//身份證 private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) public Students(){ } public Students(IdCard card, String gender, Date date, String major) { // super(); this.card = card; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="pid",unique=true) public IdCard getCard() { return card; } public void setCard(IdCard card) { this.card = card; } }

身份證實(shí)體類:
package com.oto; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.annotations.GenericGenerator; @Entity public class IdCard { @Id @GeneratedValue(generator="pid") @GenericGenerator(name="pid",strategy="assigned") @Column(length=18) private String pid; //身份證號(hào) private String sname;//姓名 public IdCard(){ } public IdCard(String pid, String sname) { this.pid = pid; this.sname = sname; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } }
測(cè)試類:
   
package com.oto; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } //往數(shù)據(jù)庫中添加學(xué)生數(shù)據(jù) @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); //創(chuàng)建會(huì)話 Session session = sessionFactory.getCurrentSession(); //創(chuàng)建事務(wù) Transaction tx = session.beginTransaction(); IdCard card = new IdCard("123456789012345678","豬8戒"); Students stu = new Students(card,"男",new Date(),"計(jì)算機(jī)"); session.save(card); session.save(stu); tx.commit(); } }

hibernate.cfg.xml中的配置:下面的使用的是同1個(gè)配置,下邊的代碼中不再羅列,
       
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration⑶.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_struts_stumanager</property> --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mypage</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.show_sql">false</property> <property name="hibernate.hbm2ddl.auto">create</property> <property name="current_session_context_class">thread</property> <!-- <mapping class="com.oto.Students"/> <mapping class="com.oto.IdCard"/> --><!-- 1對(duì)1單向外鍵關(guān)聯(lián) --> <!-- <mapping class="com.oto_11.Students"/> <mapping class="com.oto_11.IdCard"/> --> <!--1對(duì)1雙向外鍵關(guān)聯(lián) --> <!-- <mapping class="com.mto.Students"/> <mapping class="com.mto.ClassRoom"/> --><!-- 多對(duì)1單向外鍵關(guān)聯(lián)--> <!-- <mapping class="com.otm.Students"/> <mapping class="com.otm.ClassRoom"/> --><!-- 1對(duì)多單向外鍵關(guān)聯(lián) --> <!-- <mapping class="com.otm_11.Students"/> <mapping class="com.otm_11.ClassRoom"/> --><!-- 1對(duì)多雙向外鍵 --> <!-- <mapping class="com.mtm.Students"/> <mapping class="com.mtm.Teachers"/> --> <!-- 多對(duì)多單向外鍵關(guān)聯(lián) --> <mapping class="com.mtm_11.Students"/> <mapping class="com.mtm_11.Teachers"/> <!-- 多對(duì)多雙向外鍵關(guān)聯(lián) --> </session-factory> </hibernate-configuration>

1對(duì)1雙向外鍵關(guān)聯(lián)

主控方的配置同1對(duì)1單向外鍵關(guān)聯(lián)
@OneToOne(mappedBy="card")//被控方
雙向關(guān)聯(lián),必須設(shè)置mappedBy屬性。由于雙向關(guān)聯(lián)只能交給1方去控制,不可能在雙方
都設(shè)置外鍵保存關(guān)聯(lián)關(guān)系,否則雙方都沒法保存
實(shí)例:
       學(xué)生實(shí)體類
 
package com.oto_11; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private IdCard card;//身份證 private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) public Students(){ } public Students(IdCard card, String gender, Date date, String major) { // super(); this.card = card; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name="pid",unique=true) public IdCard getCard() { return card; } public void setCard(IdCard card) { this.card = card; } }

身份證實(shí)體類:
    
package com.oto_11; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; import org.hibernate.annotations.GenericGenerator; @Entity public class IdCard { @Id @GeneratedValue(generator="pid") @GenericGenerator(name="pid",strategy="assigned") @Column(length=18) private String pid; //身份證號(hào) private String sname;//姓名 @OneToOne(mappedBy="card") private Students stu; public IdCard(){ } public IdCard(String pid, String sname) { this.pid = pid; this.sname = sname; } public Students getStu() { return stu; } public void setStu(Students stu) { this.stu = stu; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } }
測(cè)試類:
   
package com.oto_11; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); //創(chuàng)建會(huì)話 Session session = sessionFactory.getCurrentSession(); //創(chuàng)建事務(wù) Transaction tx = session.beginTransaction(); IdCard card = new IdCard("123456789012345678","豬8戒"); Students stu = new Students(card,"男",new Date(),"計(jì)算機(jī)"); session.save(card); session.save(stu); tx.commit(); } }

                1對(duì)1單向外鍵聯(lián)合主鍵
1對(duì)1雙向外鍵聯(lián)合主鍵

 創(chuàng)建主鍵類
主鍵類必須實(shí)現(xiàn)serializable接口,重寫hashCode()和equals()方法。
主鍵類
     @Embeddable
實(shí)體類
     @EmbeddedId
                

多對(duì)1單向外鍵關(guān)聯(lián)

       多方持有1方的援用
  @ManyToOne(cascade={CascadeType.ALL},
  fetch=FetchType.EAGER)
  @JoinColumn(name="cid",referencedColumnName="CID")
學(xué)生實(shí)體類:
 
package com.mto; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) private ClassRoom classroom; private String sname; public Students(){ } public Students(String sname, String gender, Date date, String major) { // super(); this.sname = sname; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER) @JoinColumn(name="cid",referencedColumnName="CID") public ClassRoom getClassroom() { return classroom; } public void setClassroom(ClassRoom classroom) { this.classroom = classroom; } }

班級(jí)實(shí)體類:
 
package com.mto; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.annotations.GenericGenerator; //班級(jí)實(shí)體類 @Entity public class ClassRoom { @Id @GeneratedValue(generator="cid") @GenericGenerator(name="cid",strategy="assigned") @Column(length=4) private String cid;//班級(jí)的編號(hào) private String cname;//班級(jí)的名字 public ClassRoom(){ } public ClassRoom(String cid, String cname) { this.cid = cid; this.cname = cname; } public String getCid() { return cid; } public void setCid(String cid) { this.cid = cid; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } }
測(cè)試類:
  
package com.mto; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } //往數(shù)據(jù)庫中添加學(xué)生數(shù)據(jù) @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); //創(chuàng)建會(huì)話 Session session = sessionFactory.getCurrentSession(); //創(chuàng)建事務(wù) Transaction tx = session.beginTransaction(); //創(chuàng)建班級(jí)對(duì)象 ClassRoom c1 = new ClassRoom("0001","軟件工程"); ClassRoom c2 = new ClassRoom("0002","通訊工程"); //創(chuàng)建學(xué)生對(duì)象 Students s1 = new Students("小王","男",new Date(),"計(jì)算機(jī)"); Students s2 = new Students("小黃","男",new Date(),"計(jì)算機(jī)"); Students s3 = new Students("小花","女",new Date(),"計(jì)算機(jī)"); Students s4 = new Students("小紅","女",new Date(),"計(jì)算機(jī)"); s1.setClassroom(c1); s2.setClassroom(c1); s3.setClassroom(c2); s4.setClassroom(c2); session.save(c1); session.save(c2); session.save(s1); session.save(s2); session.save(s3); session.save(s4); tx.commit(); } }

1對(duì)多單向外鍵關(guān)聯(lián)

 1方持有多方的集合
  @OneToMany(cascade={cascadeType.ALL},fetch=FetchType.LAZY)
  @JoinColumn(name="cid")
     實(shí)例:
學(xué)生實(shí)體類:
       
package com.otm; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) private String sname; public Students(){ } public Students(String sname, String gender, Date date, String major) { // super(); this.sname = sname; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } }
班級(jí)實(shí)體類:
         
package com.otm; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import org.hibernate.annotations.GenericGenerator; //班級(jí)實(shí)體類 @Entity public class ClassRoom { @Id @GeneratedValue(generator="cid") @GenericGenerator(name="cid",strategy="assigned") @Column(length=4) private String cid;//班級(jí)的編號(hào) private String cname;//班級(jí)的名字 @OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY) @JoinColumn(name="cid") private Set<Students> stus;//1方持有多方的集合 public ClassRoom(){ } public ClassRoom(String cid, String cname) { this.cid = cid; this.cname = cname; } public String getCid() { return cid; } public void setCid(String cid) { this.cid = cid; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public Set<Students> getStus() { return stus; } public void setStus(Set<Students> stus) { this.stus = stus; } }

測(cè)試類:
      
package com.otm; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); //創(chuàng)建會(huì)話 Session session = sessionFactory.getCurrentSession(); //創(chuàng)建事務(wù) Transaction tx = session.beginTransaction(); //創(chuàng)建班級(jí)對(duì)象 ClassRoom c1 = new ClassRoom("0001","軟件工程"); ClassRoom c2 = new ClassRoom("0002","通訊工程"); //創(chuàng)建學(xué)生對(duì)象 Students s1 = new Students("小王","男",new Date(),"計(jì)算機(jī)"); Students s2 = new Students("小黃","男",new Date(),"計(jì)算機(jī)"); Students s3 = new Students("小花","女",new Date(),"計(jì)算機(jī)"); Students s4 = new Students("小紅","女",new Date(),"計(jì)算機(jī)"); Set<Students> set1 = new HashSet<Students>(); set1.add(s1); set1.add(s2); Set<Students> set2 = new HashSet<Students>(); set2.add(s3); set2.add(s4); session.save(s1); session.save(s2); session.save(s3); session.save(s4); session.save(c1); session.save(c2); tx.commit(); } }

1對(duì)多雙向外鍵關(guān)聯(lián)

多方:多方持有1方的援用
@ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
@JoinColumn(name="cid")
1方:1方持有多方的集合
@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY)
@JoinColumn(name="cid")
        實(shí)例:
      
package com.otm_11; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) private String sname;//姓名 private ClassRoom classroom; public Students(){ } public Students(String sname, String gender, Date date, String major) { // super(); this.sname = sname; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER) @JoinColumn(name="cid") public ClassRoom getClassroom() { return classroom; } public void setClassroom(ClassRoom classroom) { this.classroom = classroom; } }

班級(jí)實(shí)體類:
  
package com.otm_11; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import org.hibernate.annotations.GenericGenerator; //班級(jí)實(shí)體類 @Entity public class ClassRoom { @Id @GeneratedValue(generator="cid") @GenericGenerator(name="cid",strategy="assigned") @Column(length=4) private String cid;//班級(jí)的編號(hào) private String cname;//班級(jí)的名字 @OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY) @JoinColumn(name="cid") private Set<Students> stus;//1方持有多方的集合 public ClassRoom(){ } public ClassRoom(String cid, String cname) { this.cid = cid; this.cname = cname; } public String getCid() { return cid; } public void setCid(String cid) { this.cid = cid; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public Set<Students> getStus() { return stus; } public void setStus(Set<Students> stus) { this.stus = stus; } }
測(cè)試類:
 
package com.mto_11; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; import com.otm_11.ClassRoom; import com.otm_11.Students; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); //創(chuàng)建會(huì)話 Session session = sessionFactory.getCurrentSession(); //創(chuàng)建事務(wù) Transaction tx = session.beginTransaction(); //創(chuàng)建班級(jí)對(duì)象 ClassRoom c1 = new ClassRoom("0001","軟件工程"); ClassRoom c2 = new ClassRoom("0002","通訊工程"); //創(chuàng)建學(xué)生對(duì)象 Students s1 = new Students("小王","男",new Date(),"計(jì)算機(jī)"); Students s2 = new Students("小黃","男",new Date(),"計(jì)算機(jī)"); Students s3 = new Students("小花","女",new Date(),"計(jì)算機(jī)"); Students s4 = new Students("小紅","女",new Date(),"計(jì)算機(jī)"); s1.setClassroom(c1); s2.setClassroom(c1); s3.setClassroom(c2); s4.setClassroom(c2); session.save(c1); session.save(c2); session.save(s1); session.save(s2); session.save(s3); session.save(s4); tx.commit(); } }

多對(duì)多單向外鍵關(guān)聯(lián)

 其中1個(gè)多方持有另外一個(gè)多方的集合對(duì)象
 創(chuàng)建中間表
 @MantToMany
 @JoinTable(
     name="teachers_students",
     joinColumns={@JoinColumn(name="sid")},inverseJoinColumns={@JoinColumn(name="tid")}
 )
實(shí)例:
學(xué)生實(shí)體類:
package com.mtm; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) private String sname;//學(xué)生姓名 private Set<Teachers> teachers; //學(xué)生持有教師的集合 public Students(){ } public Students(String sname, String gender, Date date, String major) { // super(); this.sname = sname; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @ManyToMany @JoinTable( name="teachers_students", joinColumns={@JoinColumn(name="sid")}, inverseJoinColumns={@JoinColumn(name="tid")} ) public Set<Teachers> getTeachers() { return teachers; } public void setTeachers(Set<Teachers> teachers) { this.teachers = teachers; } }

老師實(shí)體類:
 
package com.mtm; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.annotations.GenericGenerator; //教師實(shí)體類 @Entity public class Teachers { @Id @GeneratedValue(generator="tid") @GenericGenerator(name="tid",strategy="assigned") @Column(length=4) private String tid;//教師id private String tname;//教師名字 public Teachers(){ } public Teachers(String tid, String tname) { // super(); this.tid = tid; this.tname = tname; } public String getTid() { return tid; } public void setTid(String tid) { this.tid = tid; } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } }

測(cè)試類:
package com.mtm; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); Session session = sessionFactory.getCurrentSession(); Transaction tx = session.beginTransaction(); //創(chuàng)建教師對(duì)象 Teachers t1 = new Teachers("0001","張老師"); Teachers t2 = new Teachers("0002","黃老師"); Teachers t3 = new Teachers("0003","李老師"); Teachers t4 = new Teachers("0004","王老師"); Students s1 = new Students("張3","男",new Date(),"計(jì)算機(jī)"); Students s2 = new Students("李4","男",new Date(),"計(jì)算機(jī)"); Students s3 = new Students("王5","女",new Date(),"通訊"); Students s4 = new Students("趙6","女",new Date(),"通訊"); Set<Teachers> set1 = new HashSet<Teachers>(); set1.add(t1); set1.add(t2); Set<Teachers> set2 = new HashSet<Teachers>(); set2.add(t3); set2.add(t4); Set<Teachers> set3 = new HashSet<Teachers>(); set3.add(t1); set3.add(t3); set3.add(t4); Set<Teachers> set4 = new HashSet<Teachers>(); set4.add(t2); set4.add(t3); set4.add(t4); s1.setTeachers(set1); s2.setTeachers(set2); s3.setTeachers(set3); s4.setTeachers(set4); session.save(t1); session.save(t2); session.save(t3); session.save(t4); session.save(s1); session.save(s2); session.save(s3); session.save(s4); tx.commit(); } }

多對(duì)多雙向外鍵關(guān)聯(lián)

雙方持有對(duì)方的集合對(duì)象,其中1方設(shè)置
 //教師類
 @ManyToMany(mappedBy="teachers")
 另外一方
 //學(xué)生類
 @ManyToMany
 @JoinTable(
    name="teachers_students",
    joinColumns={@JoinColumn(name="sid")},
    inverseJoinColumns={@JoinColumn(name="tid")}
 )
實(shí)例:
學(xué)生實(shí)體類:
 
package com.mtm_11; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity;//JPA注解 import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; /* * 學(xué)生實(shí)體類 */ @Entity public class Students { private int sid; //學(xué)號(hào) private String gender;//性別 private Date birthday;//誕生日期 private String major;//專業(yè) private String sname;//學(xué)生姓名 private Set<Teachers> teachers; //學(xué)生持有教師的集合 public Students(){ } public Students(String sname, String gender, Date date, String major) { // super(); this.sname = sname; this.gender = gender; this.birthday = date; this.major = major; } @Id @GeneratedValue public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } @ManyToMany @JoinTable( name="teachers_students", joinColumns={@JoinColumn(name="sid")}, inverseJoinColumns={@JoinColumn(name="tid")} ) public Set<Teachers> getTeachers() { return teachers; } public void setTeachers(Set<Teachers> teachers) { this.teachers = teachers; } }
老師實(shí)體類:
  
package com.mtm_11; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToMany; import org.hibernate.annotations.GenericGenerator; //教師實(shí)體類 @Entity public class Teachers { @Id @GeneratedValue(generator="tid") @GenericGenerator(name="tid",strategy="assigned") @Column(length=4) private String tid;//教師id private String tname;//教師名字 @ManyToMany(mappedBy="teachers") private Set<Students> stus;//教師持有學(xué)生的集合 public Teachers(){ } public Teachers(String tid, String tname) { // super(); this.tid = tid; this.tname = tname; } public String getTid() { return tid; } public void setTid(String tid) { this.tid = tid; } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } }
測(cè)試類:
  
package com.mtm_11; import java.util.Date; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.junit.Test; public class TestStudents { @Test public void testShemaExport(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); SchemaExport export = new SchemaExport(config); export.create(true,true); } @Test public void addStudents(){ //創(chuàng)建hibernate配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); Session session = sessionFactory.getCurrentSession(); Transaction tx = session.beginTransaction(); //創(chuàng)建教師對(duì)象 Teachers t1 = new Teachers("0001","張老師"); Teachers t2 = new Teachers("0002","黃老師"); Teachers t3 = new Teachers("0003","李老師"); Teachers t4 = new Teachers("0004","王老師"); Students s1 = new Students("張3","男",new Date(),"計(jì)算機(jī)"); Students s2 = new Students("李4","男",new Date(),"計(jì)算機(jī)"); Students s3 = new Students("王5","女",new Date(),"通訊"); Students s4 = new Students("趙6","女",new Date(),"通訊"); Set<Teachers> set1 = new HashSet<Teachers>(); set1.add(t1); set1.add(t2); Set<Teachers> set2 = new HashSet<Teachers>(); set2.add(t3); set2.add(t4); Set<Teachers> set3 = new HashSet<Teachers>(); set3.add(t1); set3.add(t3); set3.add(t4); Set<Teachers> set4 = new HashSet<Teachers>(); set4.add(t2); set4.add(t3); set4.add(t4); s1.setTeachers(set1); s2.setTeachers(set2); s3.setTeachers(set3); s4.setTeachers(set4); session.save(t1); session.save(t2); session.save(t3); session.save(t4); session.save(s1); session.save(s2); session.save(s3); session.save(s4); tx.commit(); } }
這里羅列了幾個(gè)簡(jiǎn)單的例子,大神直接略過啊~~~~
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 麻豆专区一区二区三区四区五区 | 欧美999| 久久麻豆| 精品一区二区不卡 | 99爱在线观看 | 97视频在线播放 | 91看看| 91精品久久久久久久久 | 精品国产91久久久久久老师 | 亚洲免费视频一区二区 | 成人av毛片| 狠狠ri | 91视频在线看 | 久久久精品亚洲 | 一区二区三区精品在线 | 日韩成人美女视频 | 国产精品xx | 国产精品欧美激情 | 国产资源在线观看 | av一区在线观看 | 50岁女人一级毛片 | 黄色毛片毛茸茸 | 久久久久久久久久久久久久久久久久久久 | 综合黄色| 97成人在线视频 | 欧州一区二区三区 | 成年人在线观看视频 | 美女在线观看www | 欧美亚洲激情 | 日韩欧美精品在线 | 日韩av电影网站 | 亚洲精品电影在线观看 | 人人澡人人添人人爽一区二区 | 韩国一级片在线播放 | 日本国产精品 | 久久香视频 | 国产区视频在线 | 国产一区福利 | 激情久久网 | 欧美精品一区二区三区四区五区 | 亚洲精品美女久久久久网站 |