-
set集合常用属性 <set name="stu" table="stu"> <!-- 指定关联的外键列 --> <key column="gid"></key> <one-to-many class="com.entity.Student"/> </set>查看全部
-
//修改学生信息 public static void update(){ Grade g2=new Grade("java二班", "java软件开发二班"); Session s2=HibernateUtil.getSession(); Transaction t2=s2.beginTransaction(); Student student2=(Student) s2.get(Student.class, 1); g2.getStu().add(student2); s2.save(g2); t2.commit(); HibernateUtil.closeSession(s2); } //删除学生信息 public static void del(){ Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); Student stu=(Student) session.get(Student.class, 2); session.delete(stu); transaction.commit(); HibernateUtil.closeSession(session); }查看全部
-
//添加学生信息 public static void add(){ Grade g=new Grade("java一班","java软件开发"); Student s1=new Student("李四", "男"); Student s2=new Student("小月","女"); g.getStu().add(s1); g.getStu().add(s2); Session s=HibernateUtil.getSession(); Transaction t=s.beginTransaction(); s.save(g); s.save(s1); s.save(s2); t.commit(); HibernateUtil.closeSession(s); } //通过班级获取学生信息 public static void getStuByGrade(){ Session s=HibernateUtil.getSession(); Grade g=(Grade) s.get(Grade.class, 1); System.out.println("班级:"+g.getGname()+"班级信息:"+g.getGdesc()); Set<Student> students=g.getStu(); for (Student stu:students) { System.out.println(stu.getSname()+" "+stu.getSex()); } }查看全部
-
配置单向的一对多映射文件查看全部
-
用MyEclipse: 1.可以建立与数据库的连接,Windows->showView->MyEclipse Database或者右上角加的图标 2.添加Hibernate支持,生成配置文件 3.反向生成映射,在DB Browser里选中表,Hibernate Mapping and Application Generation查看全部
-
cascade属性查看全部
-
set集合常用属性查看全部
-
实现单向一对多: 在one方的实体中添加保存many方的集合 在one放的配置文件中添加<one-to-many>配置 实现单向多对一: 在many方的实体中添加one方的引用 在many方的配置文件中添加<many-to-one>配置 常用属性: cascade:设置级联关系 inverse:设置由哪一方维护关联关系查看全部
-
<set name="students" table="student"> <key column="gid"></key> <one-to-many class="com.bjp0425.entity.Student"></one> </set> <!--配置映射--> <mapping resource="com/bjp0425/entity/Grade.hbm.xml"></mapping> <mapping resource="com/bjp0425/entity/Student.hbm.xml"></mapping>查看全部
-
cascade属性: 1、当设置了cascade属性不为none时,Hibernate会自动持久化所关联的对象; 2、cascade属性的设置会带来性能上的变动,需要谨慎设置; ———————————————————————————— 属性值 含义和作用 all 对所有操作进行级联操作 save-update 执行保存和更新操作时进行级联操作 delete 执行删除时进行级联操作 none 对所有操作不进行级联操作 ———————————————— 说明:举个栗子,见截图: 在向Grade添加Student后,保存Grade对象时,能不能不需要显示的保存Student对象,答案是可以的,可以使用级联操作:在Grade的映射文件中的<set>节点添加cascade属性不为none,为"save-update".查看全部
-
配置双向的关联关系: 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" /> </set> —————————————————————————— 多方配置 <many-to-one name="指定对应的属性的名称" class="对应实体类的全类名com.imooc.entity.Grade" column="指定外键的列名gid" > </many-to-one>查看全部
-
单向多对一中添加学生信息(学生为多,班级为一)查看全部
-
单向多对一的配置: 1.在多方定义一放的引用 private Classes classes get,set方法 2、在多方持久类的映射文件中添加 <many-to-one class name="指定对一方的引用,实际上就是一方引用定义的属性" class="一方对应的持久化类,即关联实体类,全类名" cloumn="外键的列名" ></many-to-one>查看全部
-
单向多对一关联: 1、多对一的关系和关系数据库中的外键参照关系最匹配,即在己方(多方)的表中的一个外键参照另一个表的主键; 2、通过在多方持有一方的引用实现,需要在“多”的一端使用<many-to-one>配置查看全部
-
//删除学生信息 public static void delete(){ //获取对话 Session session=HibernateUtil.getSession(); // 开启事务 Transaction tx=session.beginTransaction(); //获取学生信息2 Student stu=(Student) session.get(Student.class, 2); //删除学生 如果修改,先创建班级信息g,在将获得的学生信息添加最后 保存session.save(g); session.delete(stu); //提交事务 tx.commit(); //关闭事物 HibernateUtil.closeSession(session); } //修改学生信息 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); g.getStudents().add(stu); session.save(g); tx.commit(); HibernateUtil.closeSession(session); }查看全部
举报
0/150
提交
取消