周荐吧 关注:1贴子:11
  • 0回复贴,共1

Hibernate学习

只看楼主收藏回复

Hibernate学习
极客学院
第一个Hibernate应用
maven的下载和安装。Maven的使用规则,概念同pip,pom.xml文件配置所需要的jar包,根据需要自动下载。aven仓库的布局,构建都有唯一的坐标,Maven根据坐标管理构建的存储。Maven专门的课程学习。Hibernate访问数据库的步骤。初始化过程与方法,SessionFactory接口,Session接口。
Hibernate框架入门
ORM产品有Hibernate、TopLink~Oracle、Apache OJB。数据库驱动需要单独导入,hibernate.cfg.xml文件位于project/etc中,或使用hibernate.properties中含有数据库的连接参数。首先加载配置文件,创建Configuration实例,此类负责管理Hite的配置信息并根据配置信息启动Hite。再通过实例创建SessionFctory实例,此实例对应一个数据存储源,线程安全,重量级。再打开一个Session实例,线程不安全,轻量级,Hite一级缓存,Session类主要用来执行实体的持久化操作,save,update,delete,get(ClassName.class,id) 还有Session.load等。Transction接口是实务接口,包括JDBC API和JTA。Query接口查询接口,包装了HQL查询语句,Criteria接口擅长执行动态查询。hibernate.xml中配置数据库连接参数,在于实体类同名的.hbm.xml文件中,配置其与响应数据表的映射关系,并在hibernate.cfg.xml中注册这个.xml文件。设计持久化实体类,属性是集合类型时必须定义成接口类型,如List、Set、Map,实现Serializable接口支持序列化。
Hibernate基本配置与操作
c3p0配置,在下载文件中的lib/opation/c3p0下有相关jar包,build path后,配置在.cfg.xml文件中,包括连接数以及连接时间等的配置。在xxx.hbm.xml文件中的配置标签generator定义主键生成方式。Session缓存的作用,减少数据库访问频率,保证缓存中的对象与数据库中的数据同步,当持久化对象之间存在循环关系时,Session保证不出现死循环。Session缓存的模式设置一定要在事务定义之前。Session中get 方法与load方法的区别。merge方法,将给定实例的状态复制到具有相同标识符的持久化实例上,并返回这个持久化实例,常用来代替update()、saveOrUpdate()方法,会将瞬时状态和持久化对象操作。
Hibernate基本查询
Query是Hite专门用来执行HQL查询接口。HQL查询支持条件查询,投影查询,分页查询,连接查询,分组查询,子查询,内置聚集函数,支持动态绑定参数。HQL语句执行查询操作,使用方法类似于SQL查询,但具有更灵活的特点,HQL语言中变量的设定根据实体类中的名称指定。投影查询中需要创建实体类的新的构造方法,使得查询后的结果操作更简单。查询语句需要多加练习。Hite的命名查询,将HQL语句编写在关系映射文件中,在程序中通过Session的getNameQuery()方法获得,可以是SQL语句。Hite聚合函数和分组查询。Hite的分页查询和批量更新。分页查询将查询后的数据按照规则分页。有直接的update和delete语句,query.executeUpdate()返回更改的条目数。
Hibernate对集合属性操作
Set集合,配置在.hbm.xml文件中用set标签,name.table.key.element子元素,数据库中为集合类型专门准备了表与之对应。需要为element设置type属性。延迟加载。2)List集合,list标签,name.table~key.list-index和element,list集合有序且可以重复,在创建对应的表时需要顺序列与list-index对应。3)Collection集合,bag或idbag标签,name.table~在idbag中多了collection-id子元素,bag标签删除集合中的某个元素时,会先删除所有的元素,再添加其余元素,影响效率,所以用idbag,需要添用collection-id作为表的主键,删除时按照新添加的主键作为标记删除。4)Map集合,多了map-key子元素,保存map中的键值。


IP属地:陕西来自iPhone客户端1楼2015-11-24 02:30回复