本文共计949个文字,预计阅读时间需要4分钟。

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:插件官网tools.jboss.org/
1、插件安装download.jboss.org/jbosstools/updates/stable/luna/