序言 前面两节讲了hibernate的两个配置文件和hello world!.还有hibernate的一级缓存和三种状态,基本上hibernate就懂一点了,从这章起开始一个很重要的知识点,hibernate的关系映射.一对一.一对多.多对多的讲解.,希望你们能从中学到东西,我也从中巩固自己的知识 计划: one to many:单向一对多.many-to-one:单向多对一.双向一对多 这一篇文章讲完 many-to-many:下一篇 one-to-one:在下一篇 最后一篇:cascade和…
一.关系映射简介 在数据库中,表与表的关系,仅有外键.但使用hibernate后,为面向对象的编程,对象与对象的关系多样化:如 一对一,一对多,多对多,并具有单向和双向之分. 开始练习前,复制上一次项目,并更名为 二.一对一单向外键关联 例如:一个老师只教一个学生,一个学生只能被一个老师教 关系图如: 修改teahcer.java和student.java类(为了简单起见吧Student也更改为使用Annotation的形式) package com.model; import javax.pe…
一.Hibernate多对一关联映射:就是在“多”的一端加外键,指向“一”的一端. 比如多个学生对应一个班级,多个用户对应一个级别等等,都是多对一关系. 1.“多”端实体加入引用“一”端实体的变量及getter,setter方法. 比如说多个学生对应一个班级,在学生实体类加入:private Grade grade; 2.“多”端配置文件,student.hbm.xml里的标签设置:<many-to-one name="grade" column="gradeId&qu…
一.新建一个工程hibernate_02_HelloWorld_Annotation(复制01工程并重命名); 二.新建一个实体类teacher.java,数据库中新建teacher表; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persist…
一.多对一 多对一(或者一对多):在学生与老师的情况下,一个老师可以教多个学生,但一个学生只能被教一个老师教: 对于类:在多的那方拥有一的那方的一个实体 二.修改student.java和teacher.java类 复制03工程,并更名为Hibernate_04_ManyToOne: 在多的一方中添加@ManyToOne注解 package com.model; import javax.persistence.Embedded; import javax.persistence.Entity;…
hibernate对象的状态分为三种:  游离状态,持久化状态,瞬时状态 下面一行代码区分: Configuration   cfg=new Configuration().configure(); SessionFactory sessionFactory=cfg.buildSessionFactory(); Session session=sessionFactory.openSession(); Transaction    tx=session.beginTransaction(); P…
一般情况下有如下两种方法: 1.在配置文件中添加如下配置 <property name="hibernate.hbm2ddl.auto">create</property> 然后我们再执行任何检索.更新等操作的时候就会自动建表 2.编写一个方法,方法内容如下: Configuration conf=new Configuration(); conf.configure("/hibernate.cfg.xml"); SchemaExport d…
刚刚写的是基于外键的单向一对一.  那么双向一对一就是在单向一对一的基础上稍微改动就可以了. account.java和account.hbm.xml都不用变动  只要我们小小的变动address.java与address.hbm.xml就可以了. 唯一外键关联较主键关联映射的好处就是,万一哪天需求变了,这两个对象的关系由一对一变为多对一,那么直接把外键唯一的约束去掉就行. 而且唯一外键关联其实就是多对一关联的一种特殊情况,下面将会介绍多对一关联的情况.…
© 版权声明:本文为博主原创文章,转载请注明出处 如何获取session对象 1. openSession 2. getCurrentSession - 如果使用getCurrentSession需要在hibernate.cfg.xml中进行如下配置: 如果是本地事务(jdbc事务) <property name="current_session_context_class">thread</property> 如果是全局事务(jta事务) <proper…
一 hibernate.cfg.xml详解 1 JDBC连接: 2 配置C3P0连接池: 3 配置JNDI数据源: 4 可选的配置属性: 5 hibernate二级缓存属性 6 hibernate事务属性: 依赖于JPA或JDBC的事务管理特性. 7 其他属性  二 映射文件*.hbm.xml详解 1 hibernate-mapping 2 class元素 3 映射标识属性id 4 property属性映射普通属性 5 集合属性映射 6 集合外键 <?xml version="1.0&qu…