Hibernate
wangziustc
这个作者很懒,什么都没留下…
展开
-
Hibernate对象-关系映射
1.持久化类 持久化类使用JavaBean风格,为需要被访问的属性提供getter和setter方法。 Java应用程序不能访问持久化类的private类型的getter和setter方法,Hibernate无此限制,可以访问各种访问级别的getter、setter方法。 1.1.基本类型和包装类型 Java有8种基本类型:byte、short、char、int、long、float、do原创 2016-01-15 11:06:08 · 359 阅读 · 0 评论 -
Hibernate的检索方式
1.HQL检索方式 HQL查询语句是面向对象的,HQL查询语句中的主体是域模型中的类及类的属性。 步骤: (1)通过Session的createQuery()方法创建一个Query对象,它包含一个HQL查询语句; (2)动态绑定参数; (3)调用Query的list()方法执行查询语句。 Query query = session.createQuery("from Custome原创 2016-03-17 17:30:08 · 269 阅读 · 0 评论 -
Hibernate 映射多对多关联关系
Category(商品类别)和Item(商品)是多对多的关系,在关系数据模型中,无法直接表达CATEGORIES表和ITEMS表之间的多对多,需要创建一个连接表CATEGORY_ITEM,它同时参照CATEGORIES表和ITEMS表。 1.映射单向多对多关联关系 仅建立Category类到Item类的单向多对多关联,在Category类中定义items属性,而在Item类中不定义catego原创 2016-02-25 16:28:58 · 525 阅读 · 0 评论 -
Hibernate 映射一对一关联关系
Customer原创 2016-02-24 16:56:15 · 325 阅读 · 0 评论 -
Hibernate 映射值类型集合
假设Customer类中有orders属性和images属性,那么两者有相同的定义形式: private Set orders = new HashSet(); private Set images = new HashSet();orders属性与images属性的区别在于,前者存放的是实体类型的Order对象,而后者存放的是值类型的String对象。实体类型的对象有单独的OID和独立的生命原创 2016-02-23 16:34:47 · 421 阅读 · 0 评论 -
Hibernate 映射继承关系
Company类和Employee类之间为一对多的双向关联关系,假设Employee有两个子类HourlyEmployee类和SalariedEmployee类, 此时Employee类为抽象类,不能被实例化。Employee类和HourlyEmployee类、SalariedEmployee类之间为继承关系, HourlyEmployee类和SalariedEmployee类继承自Emplo原创 2016-02-23 08:59:43 · 473 阅读 · 0 评论 -
Hibernate 的检索策略
Hibernate提供了三种检索策略:立即检索、延迟检索和迫切左外连接检索。 类级别检索策略是指定主对象进行检索(如Customer);关联级别检索策略是对与主对象关联的对象进行检索(如Order)。 类级别和关联级别可选检索策略 检索策略作用域 可选的检索策略 默认的检索策略 运行时受影响的检索方法 类级别 立即检索 延迟检索原创 2016-03-16 17:53:27 · 408 阅读 · 0 评论 -
Hibernate 的映射类型
1.Hibernate的内置映射类型 在对象-关系映射文件中,Hibernate采用映射类型作为Java类型和SQL类型的桥梁。 1.1.Java基本类型的Hibernate映射类型 Hibernate映射类型 Java类型 标准SQL类型 大小和取值范围 integer 或者 int int 或者 Integer INTEGER 4字节,-2^31 ~原创 2016-02-01 11:36:51 · 1281 阅读 · 0 评论 -
第一个Hibernate应用
1.创建配置文件 hibernate.cfg.xml: <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> or原创 2016-01-14 09:35:57 · 315 阅读 · 0 评论 -
Hibernate 创建 sessionFatory
老版本: Configuration config = new Configuration(); config.addClass(XXX.class); SessionFactory sessionFactory = config.buildSessionFactory(); 或 SessionFactory sessionFactory = new Configuration().原创 2016-01-13 15:28:20 · 573 阅读 · 0 评论 -
通过Hibernate 操作对象(下)
1.与触发器协同工作 若Session的save()、update()、saveOrUpdate()或delete()方法会触发一个触发器,而这个触发器的行为会导致Session的缓存的数据与数据库不一致,解决办法是在执行完该操作后,立即调用Session的flush()和refresh()方法,迫使Session的缓存与数据库同步。 tx = session.beginTransaction原创 2016-01-29 14:53:39 · 488 阅读 · 0 评论 -
通过Hibernate 操作对象(上)
1.Session的缓存 只要Session实例没有结束生命周期,存放在它缓存中的对象也不会结束生命周期。 1.1.Session缓存的作用 (1)减少访问数据库频率; (2)当缓存中的持久化对象之间存在循环关联关系时,Session会保证不出现访问对象图的死循环,以及由死循环引起的JVM堆栈溢出异常; (3)保证数据库中的相关记录与缓存中的相应对象保持同步。 1.2.清理缓存机制原创 2016-01-28 16:53:21 · 320 阅读 · 0 评论 -
Hibernate 映射组成关系
SQL: create table CUSTOMERS ( ID bigint not null, NAME varchar(15), HOME_PROVINCE varchar(255), HOME_CITY varchar(255), HOME_STREET varchar(255), HOME_ZIPCODE varchar(255), COM_PROVINCE varcha原创 2016-01-27 15:16:55 · 242 阅读 · 0 评论 -
Hibernate 映射关联关系
1.映射多对一的单向关联关系 每一个Customer对应于多个Order SQL: create table CUSTOMERS( ID bigint not null, NAME varchar(15), primary key(ID) ); create table ORDERS( ID bigint not null, ORDER_原创 2016-01-22 15:40:25 · 227 阅读 · 0 评论 -
Hibernate映射对象标识符
1.关系数据库按主键区分不同的记录 1.1.把主键定义为自动增长标识符类型 eg . MySql中,把表的主键设为auto_increment类型: create table CUSTOMERS(ID int auto_increment primary key not null,NAME varchar(15)) MS SQL Server中,把表的主键设为identity类型:原创 2016-01-19 16:37:38 · 284 阅读 · 0 评论 -
Hibernate高级配置
1.配置数据库连接池 1.1.使用默认的数据库连接池 hibernate.dialect = org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class = com.mysql.jdbc.Driver hibernate.connection.url = jdbc:mysql://localhost:3306/sam原创 2016-04-12 17:03:47 · 273 阅读 · 0 评论