-
//删除学生信息 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); }查看全部
-
hibernate4.3的初始化 用于会话的获取和关闭: public class HibernateUtil{ private static SessionFactory sessionFactory; private static Session session;} static{ //创建configuration对象,读取hibernate.cfg.configure(); StandardsrciceRegistryBuilder ssrb=new SrandarsServlceRedistryBuilser() .applySettings(config.getProperties()); SrandardSerciceRegistry 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(Sessionsession){ if(session!=null){ session.close(); } }查看全部
-
3、实现为项目添加Hibernate支持 右击项目-->MyEclipse-->Add Hibernaet Capabilities-->选择hibernate版本(越高越好)-->...-->选择数据库连接-->.. 它能生成XXX.cfg.xml 文件还能生成HibernateSessionFactory工具类简化我们的操作查看全部
-
hibernate反向工程 数据库中的表变成持久化类和映射文件查看全部
-
级联操作 保存班级的时候自动保存班级中学生的数据 student表中的数据查看全部
-
hibernate类型对应的Java类型查看全部
-
cascade属性查看全部
-
inverse属性查看全部
-
单向多对一的关联查看全部
-
一对多关系set的常用属性查看全部
-
(1)在多方创建一方的对象。 (2)在多方的配置文件中配置 many-to-one (3)通过测试是否成功插入。查看全部
-
cascade属性设为all时,所有操作都级联; 设为save-update时,在保存和更新时级联; 设为delete时,在删除时级联; 设为none时,所有操作都不级联。查看全部
-
对于inverse属性的说明; 1、一方的hbm.xml文件的<set>节点的inverse属性指定了关联关系的控制方向,默认由one方来维护; 2、关联关系中,inverse="false"则为主动方,由主动方负责维护关联关系; 3、在一对多关联中,设置one方的inverse为true,这将有助于性能的改善。查看全部
-
一、单向多对一关联 (1)简介 1.在己方(多方)表中的一个外键参照另一个表的主键 2.通过在多方持有一方的引用实现,需要在多方配置<many-to-one> (2)配置 1.在多方持久类定义一方的引用 private Grade grade;并getter,setter 2.在多方的映射文件中添加 <many-to-one name="指定对一方的引用,即一方引用所定义的属性grade" class="一方对应的持久化类,即关联实体类com.imooc.entity.Grade" cloumn="外键的列名gid" ></many-to-one> (3)测试 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 s=HibernateUtil.getSession(); Transaction t=s.beginTransaction(); s.save(g); s.save(s1); s.save(s2); t.commit(); HibernateUtil.closeSession(s); } 二、双向多对一关联 (1)分别在持久化类中定义另一方的引用; 一方:private Set<Student>students=new HashSet<Student>();并setter,getter 多方:private Grade grade;并setter,getter; (2)关联关系配置 //一方 <set name="一方实体类定义的多方的引用,即多方属性Students" table="多方的表名Students"> <key column="关联外键的列gid"></key> <one-to-many class="多方实体类的全类名com.imooc.entity.Student" ></one> </set> //多方(同上略) (3)测试(同上略查看全部
-
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);查看全部
举报
0/150
提交
取消