当前位置 : 主页 > 编程语言 > c++ >

hibernate使用

来源:互联网 收集:自由互联 发布时间:2021-07-03
hibernate使用 Hibernate是一个优秀的持久化框架,理念:程序员不再为任何数据库相关的操作而担心(不用管建库建表建约束,更不用管任何SQL语句)步骤:1、导入jar包,直接导入required目录下所有
hibernate使用
Hibernate是一个优秀的持久化框架,理念:程序员不再为任何数据库相关的操作而担心(不用管建库建表建约束,更不用管任何SQL语句)
步骤:
	1、导入jar包,直接导入required目录下所有包和数据库驱动包
	2、配置hibernate.cfg.xml文件
	3、编写实体类和实体类的映射文件
1、实体映射配置文件和基本实体关系
	-->基本标签如下
	-->class类 (name:映射的类名完全名,table:数据库的表名)
		-->id主键ID (name:主键属性名,column:列名)
			-->generator主键策略 class:策略名称
	-->property属性 (name:属性名,column:列名)
	-->多 对 1 关系
 
  
		-->name		外键对象名
		-->class	外键对象类完全限定名
		-->cascade	关联操作(all,save-update,delete,none)
			-->all  	所有情况下均进行关联操作。 
			-->none		所有情况下均不进行关联操作。这是默认值。 
			-->save-update	在执行save/update/saveOrUpdate时进行关联操作。 
			-->delete	在执行delete时进行关联操作。
		-->insert	 	添加操作时候写入SQL语句中(true,false)
		-->update	 	修改操作时候写入SQL语句中(true,false)
		-->column		当前表的外键ID
	-->1 对 多关系
		-->set name:实体类集合属性名 table:关系表名称 order-by:排序列 可加desc
			-->key column		外键ID,1的外键ID
			-->one-to-many class	外键对象
		-->list
			-->key column		外键ID,1的外键ID
			-->list-index column	索引列名(来源于查询的表,不可重复,也是list存放的位置)
			-->one-to-many class	外键对象
		-->inverse:关系由谁来维护,true对方维护(一方维护),false自己维护(多方),当关系发生变化是否进行修改操作
	-->多 对 多关系
		-->需要一张关系表来维护
		-->set name:实体类集合属性名 table:关系表名称
			-->key column 当前表对应关系表的外键ID
			-->many-to-many class多的实体类 column多方的外键关系列名
	-->一 对 一 主表关系
		-->
	-->一 对 一 从表关系
		-->
2、Hibernate三种状态
	1、临时状态	没有被session管理
	2、持久状态	被session管理
	3、游离状态	曾经被session管理(在提交的时候,也会提交到数据库)	
3、Hibernate的基本方法
	1、save		保存对象
	2、update	修改对象,ID数据库必须存在
	3、saveOrUpdate	如果主键为NULL就执行save,否则执行update
	4、delete	删除对象,根据ID删除,或者根据HQL语句删除
	5、merge	和saveOrUpdate类似,如果数据库没有ID相同的就save,否则就update
			-->不需要设置主键ID为NULL,返回当前添加的对象实例(持久状态),添加的参数对象为临时状态
4、Hibernate两种加载方式
	1、get -->即时加载	get时就从数据库查询	
	2、load-->延迟加载	load时并没从数据库查询,使用时才从数据库查询(默认的关联关系查询都是延迟加载)
5、HibernateHQL语句
	Hibernate自带的一种面向对象的查询语句
	查询以类名和属性名为条件,类名=表名,属性名=列名
	参数形式
		-->以 ? 号的方式,直接使用query.setParameter(参数位置(从0开始), 值);
		-->以 :name 号的方式,直接使用query.setParameter("name", 值);
		-->以 :name 号的方式,可使用query.setProperties(info),info实体类属性必须和:name名称一致
	分页查询
		-->Query.uniqueResult		查询总条数
		-->Query.setFirstResult		从第几条数据开始查询,从零开始,不包含起始位置的数据
		-->query.setMaxResults()	查询多少条记录
6、Hibernate缓存
	1、一级缓存(Session级别)
		-->使用evict或clear清理缓存
	2、二级缓存(集群范围,可被所有session共享)
	3、查询缓存(基于二级缓存)
		-->生命周期:当关联的表发生修改,查询缓存的生命周期结束
		

使用反向工程创建实体类
	jboss:插件官网http://tools.jboss.org/
	1、插件安装http://download.jboss.org/jbosstools/updates/stable/luna/
 
网友评论