-
實現單向一對多: 在one方的實體中添加保存many方的集合 在one放的配置文件中添加<one-to-many>配置 實現單向多對一: 在many方的實體中添加one方的引用 在many方的配置文件中添加<many-to-one>配置 常用屬性: cascade:設置級聯關系 inverse:設置由哪一方維護關聯關系查看全部
-
public static void findGradeByStudent(){ Session session=HibernateUtil.getSession(); Student s1=(Student)session.get(Student.class, 2); System.out.println(s1.getSid()+","+s1.getSname()+","+s1.getSex()); Grade g=s1.getGrade(); System.out.println(g.getGid()+","+g.getGname()+","+g.getGdesc()); HibernateUtil.closeSession(session); }查看全部
-
級聯(cascade)屬性 配置映射文件: //grade映射文件 <!-- 配置單向一對多關系;設置inverse為true,有多方進行關聯關系的維護; 當保存和更新時自動進行級聯操作--> <set name="stu" table="stu" inverse="true" cascade="save-update"> <!-- 指定關聯的外鍵列 --> <key column="gid"></key> <one-to-many class="com.entity.Student"/> </set> //student映射文件 <many-to-one name="grade" class="com.entity.Grade" column="gid" cascade="all"></many-to-one>查看全部
-
對于inverse屬性的說明; 1、一方的hbm.xml文件的<set>節點的inverse屬性指定了關聯關系的控制方向,默認由one方來維護; 2、關聯關系中,inverse="false"則為主動方,由主動方負責維護關聯關系; 3、在一對多關聯中,設置one方的inverse為true,這將有助于性能的改善。 <!-- 配置單向一對多關系,設置inverse為true,有多方進行關聯關系的維護 --> <set name="stu" table="stu" inverse="true"> <!-- 指定關聯的外鍵列 --> <key column="gid"></key> <one-to-many class="com.entity.Student"/> </set>查看全部
-
配置雙向的關聯關系: 1、分別在持久化類中定義另一方的引用; 一方:private Set<Student>students=new HashSet<Student>();并setter、getter 多方:private Grade grade;并setter、getter; 2、在一方映射文件配置一對多屬性集合與在多方配置多對一關聯關系 //在一方配置關聯關系 <set name="一方實體類定義的多方的引用,即多方屬性Students" table="多方的表名"> <key column="關聯外鍵的列gid"></key> <one-to-many class="多方實體類的全類名com.imooc.entity.Student" ></one> </set> //在多方配置關聯關系 <many-to-one name="指定對應的屬性的名稱" class="對應實體類的全類名com.imooc.entity.Grade" column="指定外鍵的列名gid" > </many-to-one> //測試方法 public static void save(){ Grade g=new Grade("Java一班", "Java軟件開發一班"); Student s1=new Student("小米", "女"); Student s2=new Student("小明","男"); //創建多對一的配置 g.getStu().add(s1); g.getStu().add(s2); s1.setGrade(g); s2.setGrade(g); Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); session.save(g); session.save(s1); session.save(s2); transaction.commit(); HibernateUtil.closeSession(session); }查看全部
-
//單向多對一之添加學生信息 public static void save(){ Grade g=new Grade("Java一班", "Java軟件開發一班"); Student s1=new Student("小米", "女"); Student s2=new Student("小明","男"); //創建多對一的配置 s1.setGrade(g); s2.setGrade(g); Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); session.save(g); session.save(s1); session.save(s2); transaction.commit(); HibernateUtil.closeSession(session); }查看全部
-
單向多對一的配置: 1.在多方持久類定義一方的引用 private Grade grade;并getter,setter 2.在多方的映射文件中添加 <many-to-one name="指定對一方的引用,即一方引用所定義的屬性grade" class="一方對應的持久化類,即關聯實體類com.imooc.entity.Grade" cloumn="外鍵的列名gid" ></many-to-one>查看全部
-
單向多對一關聯: 1.多對一的關系和關系數據庫中的外鍵參照關系最匹配,即在己方(多方)表中的一個外鍵參照另一個表的主鍵; 2.通過在多方持有一方的引用實現,需要在“多”的一端使用<many-to-one>配置查看全部
-
一對多映射 一、簡介 什么是一對多的關系呢? 如同班級與學生的關系,站在班級的角度看,班級為一方,學生為多方,這種關系是單向的。 如何實現一對多的關系呢? 1.在數據庫中,可以通過添加主外鍵的關聯,表現一對多的關系; 2.在java中,通過在一方持有多方的集合實現,即在“一”的一端中使用<set>元素表示持有“多”的一端的對象。 二、實例 (1)創建HibernateUtil工具類 1.hibernate初始化 2.獲取sessionFactory和session對象 3.關閉session對象 (2)在MySQL中創建表 1.創建班級表 2.創建學生表 (3)創建持久化類和映射文件并配置單向一對多關系 a.持久化類 1.創建學生持久化類 2.創建班級持久化類(在一方定義一個多方集合) b.配置映射文件 1.班級映射文件(配置單向一對多關系) 2.學生映射文件 3.hibernate.cfg.xml中指定映射文件、 (4)測試 1.添加和查詢學生信息 2.修改和刪除學生信息查看全部
-
創建持久化類和映射文件并配置單向一對多關系 a.持久化類 1.創建學生持久化類 2.創建班級持久化類(在一方定義一個多方集合) b.配置映射文件 //班級映射文件 <class name="com.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" not-null="true" length="20"></column> </property> <property name="gdesc" type="java.lang.String"> <column name="gdesc"></column> </property> <!-- 配置單向一對多關系 --> <set name="一方實體類定義的多方的引用,即集合屬性students" table="多方的表名Students"> <key column="關聯外鍵的列gid"></key> <one-to-many class="多方實體類的全類名com.entity.Student"></one> </set> </class> //學生映射文件(同上略) //hibernate.cfg.xml中配置 <!-- 指定映射文件 --> <mapping resource="com/entity/Grade.hbm.xml"></mapping> <mapping resource="com/entity/Student.hbm.xml"></mapping>查看全部
-
test查看全部
-
hibernate對應數據類型查看全部
-
cascade屬性——————級聯屬性查看全部
-
配置一對多查看全部
-
Set元素的常用屬性查看全部
舉報
0/150
提交
取消