随笔分类 - hibernate学习
摘要:多对多双向外键 双方持有对方的集合对象 其中一方设置: //教师类 @ManyToMany(mappedBy="teachers") //mappedby表示教师交给学生来控制 另一方: //学生类 相对于刚刚的多对多单向外键,多对多双向外键,只需要在教师类修改就行了。 教师类: 因为多对多,所以教
阅读全文
摘要:多对多单向外键 1,学生和教师构成多对多的关联关系 2,其中一个多方持有另一个多方的集合对象(学生持有教室的集合) 3,通过注解@JoinTable,创建中间表(作为多对多的载体,用来确定学生和教师的多对多关系) 最后会自动创建一个中间表teachars_students,并且这个表包含两个字段,s
阅读全文
摘要:一对多(多对一)双向外键 多方:多方持有一方的引用。 @ManyToOne(cascade={CasCadeType.ALL},fetch=FetchType.EAGER) @JoinColumn(name="cid") 一方:一方持有多方的集合。 @OneToMany(@cascade={Casc
阅读全文
摘要:一对多单向外键 1,一方持有多方的集合,一个班级有多个学生(一对多)。 2,@OneToMany(cascade={CascadeType.ALL}, fetch=FetchType.LAZY ) //级联关系,抓取策略:懒加载。 @JoinColumn(name="cid") //指定name为被
阅读全文
摘要:多对一单向外键 1,多方持有一方的引用,比如:多个学生对应一个班级(多对一) 2,@ManyToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER) cascade表示一种级联关系,fetch表示抓取策略(eager表示渴望,积极) @JoinC
阅读全文
摘要:一对一双向外键 1,主控方的配置同一对一单向外键关联。 2,@OneToOne(mappedBy="card") //被控方 @OneToOne(mappedBy="card") //mappedBy所对应的是主控方外键属性的值。 双向关联,必须设置mappedBy属性,因为双向关联只能交给一方去控
阅读全文
摘要:实体之间的映射关系 一对一:一个公民对应一个身份证号码 一对多(多对一):一个人可以有多个银行账号 多对多:一个学生有多个老师,一个老师有多个学生。 一对一单向外键关联 @OneToOne(cascade=cascadeType.ALL)(cascade表示级联关系) @JoinColumn(nam
阅读全文
摘要:添加方式: 一是写在属性字段上面。 二是写在属性的get访问器上面。 主要有: @Id, @SequenceGenerator @GeneratedValue @Colum @Embedded @EmbeddedId @Lob @Version @Basic @Transient @Id @Id:定
阅读全文
摘要:@Entity @Entity:映射实体类 @Entity(name="tableName") name:可选,对应数据库中一个表,若表名与实体类名相同,则可以省略。 注意:使用@Entity时候必须指定实体类的主键属性。 第一步:建立实体类: 分别给类名上面加上@Entity注解。给类中作为主键的
阅读全文
摘要:注解简介: 目的:为了简化繁琐的ORM映射文件(.hbm)的配置。 JPA与hibernate的关系 JPA:全称 java Persistence API(java持久化API接口) JPA注解是JAVAEE的规范和标准 JPA和hibernate的关系: JPA是标准接口,hibernate是实
阅读全文
摘要:1,save 2,update 3,delete 4,get/load(查询单个纪录) 实例代码: 测试结果: get load update delete get与load区别 1,get在调用之后离开发送sql语句,不考虑缓存,返回持久化对象。 2,load方法在调用后返回一个代理对象。 该代理
阅读全文
摘要:组件属性: 实体类中某个属性属于用户自定义的类的对象,比如在实体类中某个属性是自定义类的对象: 这个Address是一个用户自定义类。 该自定义类Address定义如下: 实体类中修改如下: Test类中修改如下: 标准注册规则如下:address表示对应实体类中的属性名,class表示自定义类名,
阅读全文
摘要:1,单一主键 2,基本类型 3,对象类型 4,组件属性 5,单表操作 单一主键 常用生成策略: assigned 有程序员生成(手工) native 由数据库底层,如果是mysql是increment,如果是Oracle是sequence。 测试assigned :代码手动给他赋值,不给ID赋值 结
阅读全文
摘要:如何获取session对象? 1,openSession 2,getCurrentSession 如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置: 如果是本地事务(JDBC事务) <property="hibernate.current_sessio
阅读全文
摘要:1,hibernate.cfg.xml常用配置 2,session简介 3,transaction简介 4,session详解 5,对象关系映射常用配置 hibernate.cfg.xml常用配置 show_sql:是否把运行时候的sql语句输出到控制台,以便测试。 format_sql:输出到控制
阅读全文
摘要:用到的注解: @Test:测试方法 @Before:初始化方法。 @After:是否资源。 先执行Befere,然后执行Test,最后执行After。 第一步:新建一个Junit目录。 第二步:取名 该目录下新建一个类: 代码如下: 通过hibernate API编写访问数据库的代码 Before初
阅读全文
摘要:在src目录右键->new->others 点击next,next,选择刚刚建立的持久化的学生类。 最后会生成如下: 这个映射把students实体类映射成为数据库中一张表。 以及把这个类中每个属性映射为表中一个字段。 把这个文档加入到hibernate配置文档当中:
阅读全文
摘要:新建一个类 类必须有以下特点: 1,必须是共有类2,提供共有的不带参数的默认的构造方法3,属性私有4,熟悉使用setter/getter封装 生成一个代码如下:
阅读全文
摘要:基本配置文档如下: 右键src->new->other- 然后: 然后next,next,就行了。 最后生成一个文件: 编辑它:
阅读全文