您的位置:首页 > 其它

Hibernate概述、入门、配置文件详解、四大API详解

2017-05-05 13:55 423 查看

概述:

框架:即软件的半成品

SSH: struts2、spring 4、hibernate5当前流行框架

SSM: spring MVC、sping、mybatis

Hibernate是一个开放源代码的对象关系映射框架(ORM),它对JDBC进行了非常轻量级的对象封装,它将 j avabean 类与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动 执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,hibernate工作在dao层的orm框 架,使我们可以使用面向对象的思想操作数据库

 

 

入门:

1. 下载Hibernate

2. 搭建环境(新建项目)

导入jar包:

hibernate解压目录/lib/required/*.jar

数据库的驱动包

日志jar包 : log4j的jar包

日志配置文件

log4j. properties放到项目的src目录下

3. 新建数据库和表(大部分是通过hibernate配置文件中update来生成)

4. 创建实体类

5.映射文件(类和表的映射)

 

6. 创建核心配置文件

必须的配置项:连接数据库的基本信息,参考hibernate解压录/project/etc/hibernate.properties

可选的配置项:是否配置方言、是否打印/sq/l、是否格式化/sq/l

加载映射文件:

7. 此时,就可以编写测试代码了。

 

 

配置文件详解:

映射文件 名称:类名.hbm .xml 

位置:和实体类放在一起 

核心配置文件 

 名称: 

 格式1: xml (推荐) 建议使用使用:hibernate .cfg .xml 

 格式2: properites(不能加载映射文件,需要通过api加载) 建议使用 hibernate.properties 

 位置: 建议放在src目录下 

 配置: 

 基本信息配置: property标签 

 可选配置(方言,是否打印sql,是否格式化sql,是否由hibernate来生成ddl语句,及其如何生成) property标签 

注意: 

是否由hibernate生成ddl语句,及如何生成 

 可选值: 

none:不使用 

  create:由hibernate生成ddl语句,每执行一次就生成一次.若之前有先删除(测试) create-drop:由hibernate生成ddl语句,每执行一次就生成一次,完全使用完毕之后就删 除了这张表.若之前有先删除(测试) 

update:自动更新表.若有表直接使用且更新,若没有表则创建表(常用) 

validate:使用之前先校验映射文件和表对应上,若对应上则使用,若对应不上抛异常 

eg:update 

加载映射文件(xml)

mapping标签

 

 

四大API详解:

Configuration:

作用:

★1.加载核心配置文件

new configuration();默认加载src目录下hibernate.properties

new configuration().configure();默认加载src目录下hiberna te.cfg.xml

2.加载映射文件(不用)

addReso urce(String path);

★3.创建Sessio nFactory

buildSess ionFactory();

 

Session Factory:session的工厂

这里用到了工厂模式。需要注意的是Session Factory并不是轻量级的,

因为一般情况下,一个项目通常只需要一个Session Factory就够,当需要操作多个数据库时,可 以为每个数据库指定一个Session Factory。

作用:

★1.获取session

★2.初始化hibernate,底层维护了一个内置数据源

3.维护二级缓存.(eh cache一般不用,用redis替代了)

整合c3p0:

步骤:

1.导入c3p0 .jar(hibernate解压目录下)

2.编写核心配置文件

org .hibernate.connection. C3P0Connection Provider

5

20

120

3000

抽取一个工具类:目的是为了在外部方便获取与线程绑定的Session

Hibernate Utils

Session:类似于连接

作用:

开启事务

和数据库进行交互

Session对象是有生命周期的,它以Transaction对象的事务开始和结束边界

方法:

begin Transaction();

Seria lizable save(Object):保存 返回数据库记录id

update(Object):更新

delete(Object):删除

注意:先查询在删除或者更新

T get(Class ,id):通过id获取一个对象

T load(Class ,id):通过id获取一个对象

get和load的区别:

get:立即发送一条sql语句,返回的类型为本身

load:不是立即发送一条sql语句,使用该对象的非id属性的时候才发送sql语句,返回的类 型为子类的代理对象.(lazy 懒加载)

Transaction:事务

作用:

提交 commit()

回滚 rollback()

 

 

待续……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: