亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Hibernate初探之一對多映射

  • set屬性
    查看全部
  • @常用屬性: cascade:設置級聯關系 inverse:設置由哪一方維護關聯關系 Ps:在hbm.xml文件中,type類型既可以指定Java數據類型,也可以指定Hibernate數據類型。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @Test_Double.java——(下) //查詢學生所在班級信息 public static void findGradeByStudent(){ Session session=HibernateUtil.getSession(); Student stu=(Student) session.get(Student.class, 5); System.out.println(stu.getSid()+","+stu.getSname()+","+stu.getSex()); Grade g=stu.getGrade(); System.out.println(g.getGid()+","+g.getGname()+","+g.getGdesc()); HibernateUtil.closeSession(session); } } 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @Test_Double.java——(上) /** * 單向多對一(學生-->班級) * @author SEAN * 實際上已經建立了雙向一對多,也稱為雙向多對一 * 既可以方便地由學生查找找到對應的班級信息,也可以方便地由班級查找到其所包含的學生信息 */ public class Test_ManyToOne { public static void main(String[] args) { // save(); findGradeByStudent(); } public static void save(){ Grade g=new Grade("C++一班","C++軟件開發一班"); Student stu1=new Student("慕課女","女"); Student stu2=new Student("慕課男","男"); //設置關聯關系 /*g.getStudents().add(stu1); g.getStudents().add(stu2);*/ stu1.setGrade(g); stu2.setGrade(g); Session session=HibernateUtil.getSession(); Transaction tx=session.beginTransaction(); session.save(g); session.save(stu1); session.save(stu2); tx.commit(); HibernateUtil.closeSession(session); } ... 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @Student.hbm.xml <!-- 配置多對一關聯關系 --> <many-to-one name="grade" class="com.imooc.entity.Grade" column="gid" cascade="all"></many-to-one> Ps:注意:在進行inverse、cascade屬性操作時,只能對對應該對象操作才有效。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @配置雙向關系 @Student.java //在多方定義一個一方的引用 private Grade grade; @Grade.java //在一方定義一個多發的集合 private Set<Student> students; @Grade.hbm.xml <!-- 配置一對多關聯關系 --> <set name="students" table="student" inverse="true"> <key column="gid"></key> <one-to-many class="com.imooc.entity.Student"></one> </set> @Student.hbm.xml <!-- 配置多對一關聯關系 --> <many-to-one name="grade" class="com.imooc.entity.Grade" column="gid"> </many-to-one> @輸出:少了update語句,提高了性能。 Ps:Hibernate配置文件中的inverse屬性表示反轉,一般是在<set>節點中指定關聯關系的控制方向,默認由one(即:inverse為false)方來維護,如果雙方都來維護,對我們系統的性能是有影響的。在one方把inverse屬性設置為‘true’,由many方來進行維護,在一對多的關聯中,只能設置one方的inverse為true,這將有助于性能的改善。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • Java Hibernate SQL 的數據類型對應表
    查看全部
  • 單向多對一的配置
    查看全部
  • @Test_OneToMany.java——(下) // 修改學生信息 public static void update() { Grade g = new Grade("Java二班", "Java軟件開發二班"); Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); Student stu = (Student) session.get(Student.class, 1);//第二個參數指的是ID號 g.getStudents().add(stu); session.save(g); tx.commit(); HibernateUtil.closeSession(session); } // 查詢班級中包含的學生 public static void findStudentsByGrade() { Session session = HibernateUtil.getSession(); Grade grade = (Grade) session.get(Grade.class, 1); System.out.println(grade.getGname() + "," + grade.getGdesc()); Set<Student> students = grade.getStudents(); for (Student stu : students) { System.out.println(stu.getSname() + "," + stu.getSex()); } } } 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @Test_OneToMany.java——(上) /** * 單向一對多關聯關系(班級-->學生) * @author SEAN * 建立關聯關系后,可以方便的從一個對象導航到另一個對象,注意關聯的方向 */ public class Test { public static void main(String[] args) { // add(); // findStudentsByGrade(); // update(); delete(); } // 將學生添加到班級 public static void add() { Grade g = new Grade("Java二班", "Java軟件開發一班"); Student stu1 = new Student("張三", "男"); Student stu2 = new Student("愛慕", "女"); // 如果希望在學生表中添加對應的班級編號,需要在班級中添加學生,建立關聯關系 g.getStudents().add(stu1); g.getStudents().add(stu2); Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); // 多個關聯表中,添加順序其實這里沒關系,因為update都是最后執行的。 session.save(stu1); session.save(stu2); session.save(g); tx.commit(); HibernateUtil.closeSession(session); } // 刪除學生信息 public static void delete() { Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); Student stu = (Student) session.get(Student.class, 1); session.delete(stu); tx.commit(); HibernateUtil.closeSession(session); } ...
    查看全部
  • @HibernateUtil.java public class HibernateUtil { private static SessionFactory sessionFactory; private static Session session; static { // 創建Configuration對象,讀取hibernate.cfg.xml文件,完成初始化 Configuration config = new Configuration().configure(); StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder() .applySettings(config.getProperties()); StandardServiceRegistry ssr = ssrb.build(); sessionFactory = config.buildSessionFactory(ssr); } // 獲取SessionFactory public static SessionFactory getSessionFactory() { return sessionFactory; } // 獲取Session public static Session getSession() { session = sessionFactory.openSession(); return session; } // 關閉Session public static void closeSession(Session session) { if (session != null) session.close(); } } 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @Student.hbm.xml <?xml version="1.0"?> <hibernate-mapping> <class name="com.imooc.entity.Student" table="student"> <id name="sid" column="sid" type="java.lang.Integer"> <generator class="increment"></generator> </id> <property name="sname" type="java.lang.String"> <column name="sname" length="20" not-null="true"></column> </property> <property name="sex"> <column name="sex"></column> </property> </class> </hibernate-mapping> @Grade.java public class Grade implements Serializable { private int gid; private String gname; private String gdesc; //在一方定義一個多發的集合 private Set<Student> students =new HashSet<Student>(); //setter/getter } @Student.java public class Student implements Serializable { private int sid; private String sname; private String sex; //setter/getter } 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @hibernate.cfg.xml <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.username">root</property> <property name="hibernate.connection.password">.</property> <property name="hibernate.connection.url"> <![CDATA[ jdbc:mysql://localhost:3306/imooc?useUnicode=true&characterEncoding=utf8 ]]> </property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> <!-- 指定映射文件的路徑 --> <mapping resource="com/imooc/entity/Grade.hbm.xml"></mapping> <mapping resource="com/imooc/entity/Student.hbm.xml"></mapping> </session-factory> </hibernate-configuration> 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部
  • @Grade.hbm.xml <?xml version="1.0"?> <hibernate-mapping> <class name="com.imooc.entity.Grade" table="grade"> <id name="gid" column="gid" type="java.lang.Integer"> <generator class="increment"></generator> </id> <property name="gname" type="java.lang.String"> <column name="gname" length="20" not-null="true"></column> </property> <property name="gdesc"> <column name="gdesc"></column> </property> <!-- 配置一對多關聯關系 --> <set name="students" table="student"> <key column="gid"></key> <one-to-many class="com.imooc.entity.Student"></one> </set> </class> </hibernate-mapping> 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關注我,加我慕課好友,互相學習,共同進步!】
    查看全部

舉報

0/150
提交
取消
課程須知
本課程主要講解Java中Hibernate中的關聯映射,需要對Hibernate基本用法、ORM的基本概念、單表映射等相關知識有一定的基礎。
老師告訴你能學到什么?
1、Hibernate關聯映射的類型 2、單向一對多關聯的配置 3、單向多對一關聯的配置 4、cascade和inverse屬性的作用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!