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 · 374 阅读 · 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 · 287 阅读 · 0 评论 -
Hibernate 映射多对多关联关系
Category(商品类别)和Item(商品)是多对多的关系,在关系数据模型中,无法直接表达CATEGORIES表和ITEMS表之间的多对多,需要创建一个连接表CATEGORY_ITEM,它同时参照CATEGORIES表和ITEMS表。1.映射单向多对多关联关系仅建立Category类到Item类的单向多对多关联,在Category类中定义items属性,而在Item类中不定义catego原创 2016-02-25 16:28:58 · 544 阅读 · 0 评论 -
Hibernate 映射一对一关联关系
Customer原创 2016-02-24 16:56:15 · 337 阅读 · 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 · 428 阅读 · 0 评论 -
Hibernate 映射继承关系
Company类和Employee类之间为一对多的双向关联关系,假设Employee有两个子类HourlyEmployee类和SalariedEmployee类, 此时Employee类为抽象类,不能被实例化。Employee类和HourlyEmployee类、SalariedEmployee类之间为继承关系, HourlyEmployee类和SalariedEmployee类继承自Emplo原创 2016-02-23 08:59:43 · 487 阅读 · 0 评论 -
Hibernate 的检索策略
Hibernate提供了三种检索策略:立即检索、延迟检索和迫切左外连接检索。类级别检索策略是指定主对象进行检索(如Customer);关联级别检索策略是对与主对象关联的对象进行检索(如Order)。类级别和关联级别可选检索策略检索策略作用域可选的检索策略默认的检索策略运行时受影响的检索方法类级别立即检索延迟检索原创 2016-03-16 17:53:27 · 421 阅读 · 0 评论 -
Hibernate 的映射类型
1.Hibernate的内置映射类型在对象-关系映射文件中,Hibernate采用映射类型作为Java类型和SQL类型的桥梁。1.1.Java基本类型的Hibernate映射类型Hibernate映射类型Java类型标准SQL类型大小和取值范围integer 或者 intint 或者 IntegerINTEGER4字节,-2^31 ~原创 2016-02-01 11:36:51 · 1297 阅读 · 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 · 325 阅读 · 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 · 582 阅读 · 0 评论 -
通过Hibernate 操作对象(下)
1.与触发器协同工作若Session的save()、update()、saveOrUpdate()或delete()方法会触发一个触发器,而这个触发器的行为会导致Session的缓存的数据与数据库不一致,解决办法是在执行完该操作后,立即调用Session的flush()和refresh()方法,迫使Session的缓存与数据库同步。tx = session.beginTransaction原创 2016-01-29 14:53:39 · 506 阅读 · 0 评论 -
通过Hibernate 操作对象(上)
1.Session的缓存只要Session实例没有结束生命周期,存放在它缓存中的对象也不会结束生命周期。1.1.Session缓存的作用(1)减少访问数据库频率;(2)当缓存中的持久化对象之间存在循环关联关系时,Session会保证不出现访问对象图的死循环,以及由死循环引起的JVM堆栈溢出异常;(3)保证数据库中的相关记录与缓存中的相应对象保持同步。1.2.清理缓存机制原创 2016-01-28 16:53:21 · 329 阅读 · 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 · 251 阅读 · 0 评论 -
Hibernate 映射关联关系
1.映射多对一的单向关联关系每一个Customer对应于多个OrderSQL: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 · 237 阅读 · 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 · 302 阅读 · 0 评论 -
Hibernate高级配置
1.配置数据库连接池1.1.使用默认的数据库连接池hibernate.dialect = org.hibernate.dialect.MySQLDialecthibernate.connection.driver_class = com.mysql.jdbc.Driverhibernate.connection.url = jdbc:mysql://localhost:3306/sam原创 2016-04-12 17:03:47 · 286 阅读 · 0 评论