java鬼混笔记:Hibernate:4、多对一

来源:互联网 发布:耐高温密封条 淘宝 编辑:程序博客网 时间:2024/06/03 19:14

这次笔记的知识点是hibernate的多对一操作。常见的如 多个学生对一个教室,多对一 ,简简单单,直接上代码了

Classroom.java

package com.ywj.TestHibernate.e;import java.io.Serializable;public class Classroom implements Serializable {/** *  */private static final long serialVersionUID = 5730317497296467931L;private Long id;private String name;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

Classroom.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.ywj.TestHibernate.e"><class name="Classroom" table="classroom"><!-- 生成对象唯一的标示符 --><id name="id" column="id" type="java.lang.Long"><generator class="identity" /></id><!-- 普通写法 --><property name="name" /></class></hibernate-mapping>

Student.java

package com.ywj.TestHibernate.e;import java.io.Serializable;public class Student implements Serializable {private static final long serialVersionUID = 9053757358736102041L;private Long id;private String name;private Classroom classroom;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Classroom getClassroom() {return classroom;}public void setClassroom(Classroom classroom) {this.classroom = classroom;}}

Student.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.ywj.TestHibernate.e"><class name="Student" table="student"><!-- 生成对象唯一的标示符 --><id name="id" column="id" type="java.lang.Long"><generator class="identity" /></id><!-- 普通写法 --><property name="name" /><!-- 生成一个外键classroom,对应classroom表的id --><many-to-one name="classroom" column="classroom" class="Classroom" not-null="true"></many-to-one></class></hibernate-mapping>

Test.java

package com.ywj.TestHibernate.test;import org.hibernate.Session;import org.hibernate.Transaction;import com.ywj.TestHibernate.e.Classroom;import com.ywj.TestHibernate.e.Student;public class Test {public static void main(String[] args) {Session s = HibernateUtils.getCurrentSession();Transaction t  = null;try {t = s.beginTransaction();// 添加/*Classroom classroom = new Classroom();classroom.setName("classroom");Student st1 = new Student();st1.setName("stu1");st1.setClassroom(classroom);Student st2 = new Student();st2.setName("stu2");st2.setClassroom(classroom);    //先保存classroom先,因为你先保存classroom,student才可以获取classroom的id来保存外键。//如果你先保存studen再保存classroom,后面多会了update语句,这个update语句就是为student更新外键的 s.save(classroom);s.save(st1);s.save(st2);t.commit();*/// 查询/*Student stu = (Student) s.load(Student.class, 3L);System.out.println(stu.getClassroom().getName());*/} catch (Exception e) {e.printStackTrace();t.rollback();} finally {s.close();}}}

OK,,,,

阅读全文
0 0
原创粉丝点击