标签:
hibernate是一个ormapping框架
hibernate是一个操作数据库的操作框架
1、代码相当繁琐
2、从一个数据库移值到另外一个数据库,得改变很多内容,比较差
3、看下图:
在进行请求的时候,直接从内存中提取数据就可以了,这样的过程称为数据缓存
Jdbc虽然提供了数据库连接池,但是没有提供数据缓存
4、jdbc技术是面向sql语句操作,而不是面向对象操作的
优点:
Hibdrnate的代码是比较简单的
Hibernate是面向对象的操作
Hibernate的移动植性很强
Hibernate的缓存是世界级的
缺点:
不能干预sql语句的生成(hibernate的sql语句是内部生成的,如果对sql语句的优化要求比较高就不适合用hibernate,因此也不适用于有千万级别表的数据量)
表之间的结构复杂的话也不适合用hibernate,一般只适合于中小企业开发软件
<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支持的所有的方言
antlr.jar利用它实现HQL到SQL的转换
util工具集
c3p0数据库连接池
dom4j-dom4j解析器
hibernate3-hibernate的核心包
javassist代码生成工具
jta-事务处理接口
log4j-日志系统
文字解析: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