day32_hibernate配置文件

hibernate

基础部分

jdbc缺点
1、编程的时候很繁琐,用的try和catch比较多
2、jdbc没有做数据的缓存
3、没有做到面向对象编程
4、sql语句的跨平台性很差

jdbc的优点
效率比较高

hibernate的优点
1、完全的面向对象编程
2、hibernate的缓存很牛的,一级缓存,二级缓存,查询缓存 重点
3、编程的时候就比较简单了
4、跨平台性很强
5、使用场合就是企业内部的系统

hibernate的缺点
1、效率比较低
2、表中的数据如果在千万级别,则hibernate不适合
3、如果表与表之间的关系特别复杂,则hibernate也不适合

利用hibernate实现crud的操作

步骤

1、创建一个工程
2、导入jar包        

这里写图片描述

说明:
  javassist包是用来创建代理对象的
     代理对象的三种创建方式:
           1、jdkproxy
           2、cglib
           3、javassist
  jta: Java Transaction API,是sun公司给分布式事务处理出来的规范

3、hibernate.cfg.xml
    主要的用途:
          告诉hibernate连接数据库的信息,用的什么样的数据库(方言)
          根据持久化类和映射文件生成表的策略

4、持久化类和映射文件
5、生成表
6、客户端

说明

hibernate.cfg.xml文件的加载
这里写图片描述

这里写图片描述
可以指定配置文件的路径,配置文件可以随意放

sessionFactory

1、hibernate中的配置文件、映射文件、持久化类的信息都在sessionFactory中
2、sessionFactory中存放的信息都是共享的信息
3、sessionFactory本身就是线程安全的
4、一个hibernate框架sessionFactory只有一个
5、sessionFactory是一个重量级别的类

session

1、得到了一个session,相当于打开了一次数据库的连接
2、在hibernate中,对数据的crud操作都是由session来完成的

transaction

hibernate中的事务默认不是自动提交的

这里写图片描述

设置了connection的setAutoCommit为false
只有产生了连接,才能进行事务的操作。所以只有有了session以后,才能有transaction
流程
这里写图片描述

这里写图片描述

内部执行原理

这里写图片描述

根据表生成持久化类和映射文件
把一个工程变成hibernate工程
把数据库引入到myeclipse中

类型

hibernate类型
这个效率比较低
java类型
该种类型的效率比较高
在hibernate内部,为了一张表,这张表中有如下的映射关系:

    hibernate类型       java类型            数据库的字段的类型
    string             java.lang.String    varchar/varchar2

对象的状态

这里写图片描述

这里写图片描述

save
    该方法可以把一个对象从临时装填转换成持久化状态
get
    从数据库中根据主键提取出一个对象,该对象就是一个持久化状态的对象
update
    把一个对象变成持久化状态
evict
    把一个对象从持久化状态转化为脱管状态
clear
    把所有的hibernate中的持久化对象都转换成脱管状态的对象

副本

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值