2.Hibernate的主配置文件hibernate.cfg.xml
1.配置
Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表。Hibernate 也需要一套相关数据库和其它相关参数的配置设置。所有这些信息通常是作为一个标准的 Java 属性文件提供的,名叫 hibernate.properties。又或者是作为 XML 文件提供的,名叫 hibernate.cfg.xml。
我们将考虑 hibernate.cfg.xml 这个 XML 格式文件,来决定在我的例子里指定需要的 Hibernate 应用属性。这个 XML 文件中大多数的属性是不需要修改的。这个文件保存在应用程序的类路径的根目录里。
下面是一个重要的属性列表,你可能需要表中的属性来在单独的情况下配置数据库。
| S.N. | 属性和描述 |
|---|---|
| 1 | hibernate.dialect 这个属性使 Hibernate 应用为被选择的数据库生成适当的 SQL。 |
| 2 | hibernate.connection.driver_class JDBC 驱动程序类。 |
| 3 | hibernate.connection.url 数据库实例的 JDBC URL。 |
| 4 | hibernate.connection.username 数据库用户名。 |
| 5 | hibernate.connection.password 数据库密码。 |
| 6 | hibernate.connection.pool_size 限制在 Hibernate 应用数据库连接池中连接的数量。 |
| 7 | hibernate.connection.autocommit 允许在 JDBC 连接中使用自动提交模式。 |
如果您正在使用 JNDI 和数据库应用程序服务器然后您必须配置以下属性:
| S.N. | 属性和描述 |
|---|---|
| 1 | hibernate.connection.datasource 在应用程序服务器环境中您正在使用的应用程序 JNDI 名。 |
| 2 | hibernate.jndi.class JNDI 的 InitialContext 类。 |
| 3 | hibernate.jndi.<JNDIpropertyname> 在 JNDI的 InitialContext 类中通过任何你想要的 Java 命名和目录接口属性。 |
| 4 | hibernate.jndi.url 为 JNDI 提供 URL。 |
| 5 | hibernate.connection.username 数据库用户名。 |
| 6 | hibernate.connection.password 数据库密码。 |
Hibernate 和 MySQL 数据库
MySQL 数据库是目前可用的开源数据库系统中最受欢迎的数据库之一。我们要创建 hibernate.cfg.xml 配置文件并将其放置在应用程序的 CLASSPATH 的根目录里。
参考:详 http://www.cnblogs.com/biehongli/p/6531575.html
1:Hibernate的主配置文件的名字必须是hibernate.cfg.xml(主要配置文件中主要配置:数据库连接信息,其他参数,映射信息):
常用配置查看源码:Hibernate\hibernate-distribution-3.6.0.Final\project\etc\hibernate.properties 1.1:主配置文件主要分为三部分: 注意:通常情况下,一个session-factory节点代表一个数据库; 1.1.1:第一部分:数据库连接部分,注意"hibernate.connection.driver_class"中间的 _(杠); 1.1.2:第二部分:其他相关配置,包含打印sql语句,格式化sql语句,创建数据表或者更新数据表等等 1.1.3:第三部分:加载所有的映射;
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<!-- 通常,一个session-factory节点代表一个数据库 -->
<session-factory>
<!-- (1):数据连接配置/(2):加载所有的映射(*.hbm.xml)--> <!-- 第一部分:数据连接配置 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 数据库方法配置:mysql数据库的方言
hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 第二部分:其他相关配置 -->
<!-- 2.1:hibernate.show_sql显示hibernate运行时候执行的sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 2.2:格式化sql -->
<property name="hibernate.format_sql">true</property>
<!-- 2.3:自动建表 -->
<property name="hibernate.hbm2ddl.auto">create</property>
<!-- <property name="hibernate.hbm2ddl.auto">update</property>
-->
<!--
每次在创建sessionFactory时执行创建表,当调用sessionFactory的close方法的时候,删除表
#hibernate.hbm2ddl.auto create-drop
每次都重新建表,如果已经存在就先删除再创建
#hibernate.hbm2ddl.auto create
如果表不存在就创建,表存在就不创建
#hibernate.hbm2ddl.auto update
生成环境时候执行验证,当映射文件的内容与数据库表结构不一样的时候就报错
#hibernate.hbm2ddl.auto validate
--> <!-- 第三部分:加载所有的映射(*.hbm.xml) -->
<mapping resource="com/bie/po/User.hbm.xml"/> </session-factory>
</hibernate-configuration>
hibernate.dialect
| 数据库 | 方言属性 |
|---|---|
| DB2 | org.hibernate.dialect.DB2Dialect |
| HSQLDB | org.hibernate.dialect.HSQLDialect |
| HypersonicSQL | org.hibernate.dialect.HSQLDialect |
| Informix | org.hibernate.dialect.InformixDialect |
| Ingres | org.hibernate.dialect.IngresDialect |
| Interbase | org.hibernate.dialect.InterbaseDialect |
| Microsoft SQL Server 2000 | org.hibernate.dialect.SQLServerDialect |
| Microsoft SQL Server 2005 | org.hibernate.dialect.SQLServer2005Dialect |
| Microsoft SQL Server 2008 | org.hibernate.dialect.SQLServer2008Dialect |
| MySQL | org.hibernate.dialect.MySQLDialect |
| Oracle (any version) | org.hibernate.dialect.OracleDialect |
| Oracle 11g | org.hibernate.dialect.Oracle10gDialect |
| Oracle 10g | org.hibernate.dialect.Oracle10gDialect |
| Oracle 9i | org.hibernate.dialect.Oracle9iDialect |
| PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
| Progress | org.hibernate.dialect.ProgressDialect |
| SAP DB | org.hibernate.dialect.SAPDBDialect |
| Sybase | org.hibernate.dialect.SybaseDialect |
| Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialec |
配置详解

其他配置
1.连接池
hihibernate.connection.pool_size:最大连接池数
hibernate实现了一种插件结构,可以集成任何连接池软件,对c3p0连接池提供了内嵌支持配置如下

2.JNDI是java命名与目录接口(java naming and directory interface)
在hibernate中,除了可以通过JDBC连接数据库在还可以通过jndi配置数据源,建立数据库的连接。
配置如下

3..二级缓存
hibernate共有两级缓存,第一级缓存是session级的缓存,它是事务范围的缓存,可以由hibernate自动管理。
第二级缓存是由sessionFactory管理的进程级缓存,可以在hibernate.cfg.xml配置文件中进行配置和更改,可以动态加载和卸载。

3.事务管理,
hibernate实现对JDBC的轻量级的封装,本身并没有提供事务管理的功能,它依赖于JDBC或者JAR的事务管理功能。
hibernate默认使用JDBC的事务管理,可配置指定的transaction的工厂类别

5. 其他配置

2.Hibernate的主配置文件hibernate.cfg.xml的更多相关文章
- Hibernate的主配置文件hibernate.cfg.xml
1:Hibernate的主配置文件的名字必须是hibernate.cfg.xml(主要配置文件中主要配置:数据库连接信息,其他参数,映射信息):常用配置查看源码:Hibernate\hibernate ...
- Hibernate框架 主配置文件 Hibernate.cfg.xml 映射配置 说明
1 主配置文件 Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final ...
- 1-2 hibernate主配置文件hibernate.cfg.xml详解
详 http://www.cnblogs.com/biehongli/p/6531575.html Hibernate的主配置文件hibernate.cfg.xml 1:Hibernate的主配置文件 ...
- Hibernate框架 主配置文件(Hibernate.cfg.xml) 映射配置 说明
Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project ...
- Tomcat的目录结构、处理流程、主配置文件(server.xml)释义
参考资料: http://www.cnblogs.com/xdp-gacl/p/3744053.html http://grass51.blog.51cto.com/4356355/1123400 1 ...
- 引入Activiti配置文件activiti.cfg.xml
前面我们用代码实现了生成25张activiti表,今天我们用Activiti提供的activiti.cfg.xml配置文件来简化实现前面的功能: 官方文档参考地址:http://activiti.or ...
- activiti7配置文件activiti.cfg.xml,日志文件log4j.properties及pom文件
activiti.cfg.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns=&qu ...
- Hibernate框架 主配置文件(Hibernate.cfg.xml)基本
数据库连接参数配置: <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type ...
- 安卓开发_浅谈主配置文件(AndroidManifest.xml)
AndroidManifest.xml本质:是整个应用的主配置清单文件包含:该应用的包名,版本号,组件,权限等信息作用:记录该应用的相关的配置信息 一.常用标签(1).全局篇(包名,版本信息)(2). ...
随机推荐
- SpringBoot + docker + neo4j
下拉镜像 docker pull neo4j 启动镜像 docker run -d -p 7473:7473 -p 7687:7687 -p 7474:7474 neo4j 打开浏览器:http:// ...
- springboot @value和@configurationproperties注解的区别
@ConfigurationProperties @value 功能 批量注入配置文件中的属性 一个个指定 松散绑定(松散语法) 支持 不支持 SpEL 不支持 支持 JSR303数据校验 支持 ...
- java遍历http请求request的所有参数实现方法
方法一: 通过程序遍历http请求的所有参数放到hashmap中,用的时候方便了. 如果参数值有中文,那么需要在程序中添加filter转码,或者在下面程序里,对paramValue转码 Map map ...
- 对于dll(动态链接库)的理解
之前,尝试过写过dll,但是对于dll的理解还是不够深刻吧.今天,又加深了对于dll的理解程度,故记下以免以后忘记. 无论是c还是c++,我们通常先将源文件编译成中间代码,在Windows下是&quo ...
- WinForm中遇到Label要显示的内容太长,自动换行
很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考. 第一种是把Label的AutoSize属性设为False,手动修改Label的 ...
- 中小型研发团队架构实践六:如何用好消息队列RabbitMQ?
一.写在前面 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多.但是分布式中间件在中小研发团队中使用得并不多,为什么 ...
- .Net下SQLite的DBHelp
怎样获取SqLite请参考初识SqlLite ---.net连接数据库,怎样在SQLite使用Linq请参考在C#中利用Nuget包使用SQLite数据库和Linq to SQLite using S ...
- [日常] Go语言圣经-Slice切片习题
1.Slice(切片)代表变长的序列,序列中每个元素都有相同的类型,一个slice类型一般写作[]T,其中T代表slice中元素的类型:slice的语法和数组很像,只是没有固定长度而已,slice的底 ...
- SORT AGAIN(hdu2523)
SORT AGAIN Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Entity Framework系列文章目录
Entity Framework系列文章目录Entity Framework系列文章目录Entity Framework系列文章目录Entity Framework系列文章目录