Hibernate
文章平均质量分 60
fzjiangmin1984
这个作者很懒,什么都没留下…
展开
-
Hibernate_001_初印象_原理图
原创 2012-10-31 21:36:18 · 317 阅读 · 0 评论 -
Hibernate_单向双向的说明
Hibernate中的单向、双向在数据库中的表现形式都一样(数据库设计时一般只设计一个表的外键,另外表不设计外键,方式冗余数据),只是在Java程序中有所区分。单向是只在一个类中找到对方类的引用,而双向则是2个类都存在对方类的引用。原创 2012-11-11 13:10:30 · 540 阅读 · 0 评论 -
Hibernate_一对多_多对一_双向关联
在双方都设置对方对象的引用。由于是双向关联,则必须用mappedBy。在一的那方设置mappedBy表示数据库中是以多的那方设置一个外键。具体代码如下 Group代码@Entity@Table(name="t_group")public class Group { private int id; private String name; private Set us原创 2012-11-12 21:30:18 · 211 阅读 · 0 评论 -
Hibernate_多对多_单向关联
Hibernate_多对多_单向关联在Teacher类里面设置Student对象的引用,并注释@ManyToMany、@JoinTableTeacher类如下:@Entitypublic class Teacher { private int id; private String name; private Set students=new HashSet(); @原创 2012-11-12 22:29:11 · 230 阅读 · 0 评论 -
Hibernate_HQL实例
public class HibernateQLTest { private static SessionFactory sf; @BeforeClass public static void beforeClass() { sf = new AnnotationConfiguration().configure().buildSessionFactory(); }原创 2012-11-30 19:10:38 · 224 阅读 · 0 评论 -
hibernate_关于fetch的lazy与eager的说明
A、B存在关联关系lazy:取出A放于内存,而B不会取出,只有当用到B的时候才会从数据库从取出eager:取出A的同时也取出B,两个都放于内存原创 2012-11-17 19:08:56 · 471 阅读 · 0 评论 -
Hibernate_一级缓存_二级缓存
1、基本的缓存原理Hibernate缓存分为二级,第一级存放于session中称为一级缓存,默认带有且不能卸载。第二级是由sessionFactory控制的进程级缓存。是全局共享的缓存,凡是会调用二级缓存的查询方法都会从中受益。只有经正确的配置后二级缓存才会发挥作用。同时在进行条件查询时必须使用相应的方法才能从缓存中获取数据。比如Query.iterate()方法、load、get方法原创 2012-12-01 20:40:50 · 290 阅读 · 0 评论 -
Hibernate_知识点复习
一、 对象持久化的理论 1.对象持久化:内存中的对象转存到外部持久设备上,在需要的时候还可以恢复。 2.对象持久化的原因(目标): 物理: 1) 内存不能持久,需要在硬盘上持久保存 //(物理上,物理的都不是根本原因) 2) 内存容量有限,需要在容量更大的硬盘上保存 应用: 3) 共享(Internet的本质:信息的收集、整理、发布) //最原创 2012-12-02 20:09:06 · 278 阅读 · 0 评论 -
Hibernate_1+N问题
1+N:取对象的时候,也会将它关联的对象取出(默认fetch为eager)。处理它的方法有以下几点:1、fetch=lazy;2、BeachSize;3、join left原创 2012-12-01 17:18:41 · 231 阅读 · 0 评论 -
Hibernate_list和iterate的不同之处
a) list 取所有属性值;b)iterate 先取ID,等需要用到对象的时候再根据ID来取对象;c)session中list第二次发出,仍会到数据库中查找对象。而iterate第二次发出,则会去session缓存查找原创 2012-12-01 17:51:33 · 196 阅读 · 0 评论 -
Hibernate_关联关系的CR_Cascade_Fetch
Fetch管:R(查) ; Cascade管:CUD(增删改)假设要更新用户的同时级联更新group。可用@ManyToOne(cascade=CascadeType.ALL),其中CascadeType有4个属性,可查J2EE的API具体代码如下,例子中是多对多双向关联User类代码:@Entity@Table(name="t_user")public cl原创 2012-11-17 16:40:33 · 380 阅读 · 0 评论 -
Hibernate_一对一双向外键关联
Hibernate_一对一双向外键关联_Annotation Annotation方式:Husband类如下:@Entitypublic class Husband { private int id; private String name; private int age; private Wife wife; @Id @GeneratedValue原创 2012-11-11 12:47:02 · 262 阅读 · 0 评论 -
Hibernate_一对一单向外键关联_XML
XML方式:假设Student类与StudentCard类,它们之间是一对一的关系。Student类代码如下:public class Student { private int id; private String name; private int age; private String sex; private boolean good; pu原创 2012-11-10 21:40:12 · 223 阅读 · 0 评论 -
Hibernate_004_基础配置
1、hibernate.cfg.xml 相关参数:show_sql、format_sql2、实体名与数据库的表名不一致,可在实体添加注释:@Entity --表名该类是实体类 @Table(name=" 数据库表名") --该类对应数据库中的表名 注意:引入的都是在javax包下面,而不是在hibernate包下面3、字段名与属性名不对应,可在相应属性的get方法上面 添加原创 2012-11-03 17:15:59 · 177 阅读 · 0 评论 -
Hibernate_002_在MyEclipse中配置部署(XML方式)
hibernate.cfg.xml配置: oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:ORCL shopping 1 采用xml方式配置 Student.hbm.xml配置:<!DOCT原创 2012-10-31 22:40:16 · 219 阅读 · 0 评论 -
Hibernate_003_在MyEclipse中配置部署(注解方式Annotation)
1、使用Annotation方式需要导入3个Annotation包(hibernate-annotations.jar、ejb3-persistence.jar、hibernate-commons-annotations.jar)2、实体类添加注解3、实体类的主键定义(在getId()方法前定义) package com.jimmy.hibernate.model;imp原创 2012-11-03 13:58:37 · 307 阅读 · 0 评论 -
Hibernate_get与load区别
Hibernate 中get与load的区别 1、找不到符合条件的数据,get()方法将返回null。load()将会报出ObjectNotFoundEcception。2、get()方法直接返回实体类。load()方法可以返回实体的代理类实例。3、get()方法只在内部缓存中进行查找。load()方法可以利用二级缓存和内部缓存的现有数据。4、get方式马上发出sq原创 2012-11-09 21:17:14 · 175 阅读 · 0 评论 -
Hibernate中对象的三种状态
Hibernate中对象的三种状态及相互转化 1. 瞬时状态 (Transient)当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,如下: Customer customer=new Customer(“zx”,27,images);这时customer对象就处于自由状态,为什么说customer对象处于自由状态呢?这是因为,此时custom原创 2012-11-09 20:15:45 · 377 阅读 · 0 评论 -
Hibernate_006_核心接口
1、Configuration :用于读取配置hibernate.cfg.xml配置文件的信息;2、SessionFactory:通过读取配置文件生成连接池,产生Session。通过情况下一个应用程序只有一个SessionFactory,除非要访问多个数据库。3、SessionFactory.openSession()与SessionFactory.getCurrentSessio原创 2012-11-07 22:29:37 · 236 阅读 · 0 评论 -
Hibernate_多对一单向关联_一对多单向关联
多对关联一单向 多对一与一对多的区别:在数据库的表现形式上是一致的(只有2张对应的表,都只在多的那个对象对应的表建外键)。在java类表现形式上有差异。多对一是在多的类里有一对象的引用,即对应的表存在外键;一对多是在一的对象有多的对象的引用(集合、数组)。多对多的数据库结构是存在中间表,这张表关联2个表的ID(一共 3张表)。 多对一:一个用户组可以有多个用户,而一个用户只原创 2012-11-11 14:49:02 · 453 阅读 · 0 评论 -
Hibernate_005_ID生成策略_XML_Annotation
XML方式:1、Student.hbm.xml文件配置(generator class 可以有多种,常用的是native、uuid),native是交由数据库来创建主键,oracle是通过sequence。 Annotation方式:在主键对应的ge原创 2012-11-06 22:42:58 · 268 阅读 · 0 评论 -
Hibernate_一对一单向外键关联_Annotation
Hibernate_一对一单向外键关联分为:Annotation和xml 两种方式 Annotation方式:假设Husband与Wife类,他们之间的关系是一对一。Husband 类如下@Entitypublic class Husband { private int id; private String name; private int age; pr原创 2012-11-10 21:18:56 · 259 阅读 · 0 评论 -
Hibernate_组件关联
组件映射_Annotation在java中组件映射就是一个类中应用另一个类,而在数据库中的表现为一张表。即上面的实例中将Husband表和Wife表合并为一张表Husband。Husband类代码如下:@Entitypublic class Husband { private int id; private String name; private int age;原创 2012-11-11 13:40:41 · 181 阅读 · 0 评论 -
Hibernate_树状映射
通过Hibernate创建的Region表结构是id、name、parent_idRegion类代码:@Entitypublic class Region { private int id; private String name; private Set childs=new HashSet(); private Region parent; @Id @原创 2012-11-18 22:02:04 · 368 阅读 · 0 评论