码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate入门(一)之 hibernate的配置,运行流程以及优缺点解析

时间:2016-05-13 02:55:26      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

hibernate是什么

hibernate是一个ormapping框架
hibernate是一个操作数据库的操作框架

为什么要使用hibernate

jdbc的缺点

1、代码相当繁琐
2、从一个数据库移值到另外一个数据库,得改变很多内容,比较差
3、看下图:
技术分享
在进行请求的时候,直接从内存中提取数据就可以了,这样的过程称为数据缓存
Jdbc虽然提供了数据库连接池,但是没有提供数据缓存
4、jdbc技术是面向sql语句操作,而不是面向对象操作的

jdbc的优点:效率高

hibernate的优缺点:

优点:

      Hibdrnate的代码是比较简单的
      Hibernate是面向对象的操作
      Hibernate的移动植性很强
      Hibernate的缓存是世界级的

缺点:

    不能干预sql语句的生成(hibernate的sql语句是内部生成的,如果对sql语句的优化要求比较高就不适合用hibernate,因此也不适用于有千万级别表的数据量)

    表之间的结构复杂的话也不适合用hibernate,一般只适合于中小企业开发软件  

hibernate.cfg.xml配置文件解析

<hibernate-configuration>
    <session-factory>
        <!-- 
            要链接数据库的用户名
         -->
        <property name="connection.username">root</property>
        <!-- 
            要链接数据库的密码
         -->    
        <property name="connection.password">root</property>
        <!-- 
            链接数据库的url
         -->
        <property name="connection.url">
            jdbc:mysql://localhost:3306/itcastsh08_hibernate
        </property>
        <!-- 
            方言
                 告诉hibernate用什么样的数据库
         -->
        <property name="dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
     <!-- 
            validate  默认值
                根据持久化类和映射文件检查表的结构
            update
            hibernate容器在启动的时候,会根据持久化类和映射文件检查表的结构
            如果不存在,则创建,如果存在,则更新
            create
            每次启动hibernate容器,不管表是否存在,都会创建
            create-drop
            当启动hibernate容器时创建表,当hibernate容器销毁时,删除表
        -->
        <property name="hbm2ddl.auto">update</property>
引入映射文件
    <mapping resource="cn/itcast/sh08/hibernate/domain/Person.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

其他配置:
技术分享
show_sql表示在控制台输出sql语句
format_sql表示格式化输出的语句
方言如下:
技术分享
Hibernate支持的所有的方言

导入的jar解析

技术分享
antlr.jar利用它实现HQL到SQL的转换
util工具集
c3p0数据库连接池
dom4j-dom4j解析器
hibernate3-hibernate的核心包
javassist代码生成工具
jta-事务处理接口
log4j-日志系统

hibernate的执行流程

技术分享
文字解析:Hibernate容器-hibernate.cfg.xml-*.hbm.xml-class元素的name属性加在持久化类
具体的例子图解:
技术分享

2、关于sessionFactory

    1、sessionFactory是存放配置文件、映射文件、持久化类的信息的
    2、sessionFactory只有一个
    3、一个sessionFactory代表一个数据库的链接
    4、sessionFactory类本身是线程安全的

3、关于session

        1、一个session代表数据库的一个链接
        2、Crud操作是通过session来完成的

4、transaction是由session来创建的,因为先有链接,后有事务
5、完成操作以后,事务必须提交,session必须关闭

Hibernate入门(一)之 hibernate的配置,运行流程以及优缺点解析

标签:

原文地址:http://blog.csdn.net/qq_28483283/article/details/51336864

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!