- 连接db
- 连接池
- db方言
- 自动生成数据表
1,连接db
hibernate连接db来支持我们的应用,我们可以通过不同的方法来连接到db,主要方法如下:
连接方式 | 简介 |
独立内置的连接池 | 不建议使用到生产环境 |
javax.sql.Datasource | tomcat等web服务器上配置的连接池 |
第三方连接池 | c3p0,proxool,用的最多 |
应用提供的连接 | 不推荐使用,除非历史遗留问题 |
原理:
通过接口org.hibernate.service.jdbc.connections.spi.ConnectionProvider来获得连接,如果应用需要自己提供到hibernate的连接,实现这个接口,并通过属性
hibernate.connection.provider_class来指定自定义的连接池;
配置连接主要有三种方式:
配置方式 | 简介 |
属性文件 | |
xml文件 | |
程序配置 |
三种配置方式都可以,最常用的是使用xml文件来配置到db的连接;
使用SessionFactory的openSession()方法获得连接,配置常量在接口org.hibernate.cfg.AvailableSettings中定义.
2,连接池
hibernate内置的连接池算法不成熟,只是出于开发和测试的目的设计的,使用第三方的连接池稳定,性能优越,为了使用第三方的连接池,必须使用第三方的配置替换掉hibernate.connection.pool_size属性,以此来禁用hibernate内置的连接池。
c3p0连接池的配置:
-
hibernate.c3p0.min_size
-
hibernate.c3p0.max_size
-
hibernate.c3p0.timeout
-
hibernate.c3p0.max_statements
如果加入以上的配置,hibernate将会使用
org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider
来作为连接池,引用的jar包放在源码包中的lib下;
proxool连接池的配置:
如果加入了上面的配置,hibernate将会使用org.hibernate.service.jdbc.connections.internal.ProxoolConnectionProvider
来作为连接池,引用包同样放在源码包的lib下面;
从应用服务器获取连接,使用JNDI:
-
hibernate.connection.datasource (required)
-
hibernate.jndi.url
-
hibernate.jndi.class
-
hibernate.connection.username
-
hibernate.connection.password
使用应用服务器的容器管理事物;
其它的配置属性可参考文档结合源码来配置
;
3,方言
尽管sql语句相对来说是标准的,但是每个数据库提供商有一套自己的符号,这可以看作是不同地方的方言,hibernate通过类
org.hibernate.dialect.Dialect和它的子类来处理方言以支持不同的database;
通过属性hibernate.dialect来指定应用连接的db的方言(种类),属性值为上表中的类名;
设想下如果连接池安装好了,hibernate将自动决定使用的方言
基于java.sql.DatabaseMetaData(从
java.sql.Connection
中得到),这是通过已经安装好的方言解决器来实现解析的
org.hibernate.service.jdbc.dialect.spi.DialectResolve,如果你指定了方言,会优先选择指定的方言解析器。
4,自动生成数据表
通过SchemaExport工具可以生成数据表,它是hibernate内置的工具,可以通过映射文件生成ddl,生成的概要文件包括完整的参考条件,主键和外键,实体和表的集合映射,它也可以创建表格和通过指定的生成器生成序列;在使用之前,必须先指定方言和映射文件;
制作映射配置文件:
通过提供的一些元素和属性来制作映射配置文件,稍后提供一个实例来介绍简单的配置文件的编写;
生成数据表:
Configuration cfg = ....; new SchemaExport(cfg).create(false, true);
通过以上代码,可以加载默认的配置文件,生成对应的数据表;
相关推荐
Hibernate连接DB2
Java框架中关于hibernate的基础学习
hibernate DB2 驱动包
本资源是 学习Hibernate 的时候写的源码 ,有兴趣的可以下载下来看看
本ppt是传智播客的教学ppt,对学习和复习Hibernate 基础有很大的帮助。
Hibernate基础教程Hibernate基础教程Hibernate基础教程
hibernate基础教程.pdf hibernate基础教程.pdf hibernate基础教程.pdf
hibernate3学习总结hibernate3学习总结hibernate3学习总结hibernate3学习总结
这是我从网上长期收集 有助与学习hibernate 欢迎各位CSDN网友下载
hibernate基础jar包。包含junit,antlr,don4j,hibernate-commons-annotations,hibernate-core,hibernate-jpa-api,javassit,jboss-logging,jboss-transaction-api
设置在 hibernate.cfg.xml文件中,hibernate与数据库的连接
hibernate的学习资料,以及连接池和二级缓存
Hibernate 学习 Hibernate学习.pdf
在Hibernate中配置Proxool连接池
hibernate的查询方式介绍和hibernate的批处理和连接池配置hibernate
hibernate快速学习指南
hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记
<br>搜集清单和说明 1:hibernate学习源码,这是我以前做练习的代码,希望对感兴趣的朋友 有些帮助。 2:hibernate_reference.pdf,我以前学习参看的资料。 3:hibernate源码.zip,hibernate的源...
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP 在配置连接池时需要注意的有三点: 一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在...