Hibernate配置说明
首先说明一下,是用MySQL为例配置的,并且可以正常使用,至于其它数据库配置,也有详解,但是本人没有亲自验证,如有错误,请谅解
笔者先给出自己的配置文件,然后再详解
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<!-- 启动服务器时,自动更新数据库.开发结束以后,删掉下面这行-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- JDBC数据库连接的URL -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/databasename?characterEncoding=UTF-8</property>
<!-- JDBC驱动类 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 密码 -->
<property name="hibernate.connection.password">123456</property>
<!-- Hibernate数据库方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否显示SQL语句 -->
<property name="hibernate.show_sql">false</property>
<!-- 配置数据库连接池 -->
<!-- Hibernate连接池类名 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 最大连接数 -->
<property name="hibernate.c3p0.max_size">100</property>
<!-- 最小连接数 -->
<property name="hibernate.c3p0.min_size">10</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位秒 -->
<property name="hibernate.c3p0.timeout">120</property>
<!-- 最大的预编译语句的数量 -->
<property name="hibernate.c3p0.max_statements">50</property>
<!-- 每隔多少秒检查连接池里的空闲连接 ,单位是秒-->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
<!-- 指定的映射类 -->
<mapping class="edu.xmu.auto.entity.Role"/>
<mapping class="edu.xmu.auto.entity.User"/>
</session-factory>
</hibernate-configuration>
现在开始详解:
首先是文件头部分,这部分就不用解释了吧,当然也不需要自己去记忆。可以直接到官网给出的demo拷贝这部分
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
接下来就是如何配置Hibernate了,Hibernate的配置文件都放在下面标签内,不解释
<hibernate-configuration>
<session-factory >
<!-- 配置文件内容-->
</session-factory>
</hibernate-configuration>
下面的才是重点:
<!-- 启动服务器时,自动更新数据库,不过MySQL或其它数据库中要有你自己创建的数据库名,里面可以没有表.开发结束以后,可以去掉这个属性-->
<!-- 这里有这样4个值可选:update create create-drop validate,个人建议用update
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构,但不会删除原有数据
-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- JDBC数据库连接的URL -->
<!--
MySQL数据库URL:jdbc:mysql:// ip:port/databasename ,port默认为3306
Oracle 数据库URL:jdbc:oracle:thin:@ip:port:databasename,port默认为1521
SQL Server数据库URL: jdbc:microsoft:sqlserver://ip:port;DatabaseName=databasename ,port默认为1433
如果数据库是在远程电脑,则将localhost换为对应的IP地址;
将databasename换成对应的数据库名;
编码方式根据数据库的编码设置,数据库的编码方式是什么,就改为什么
-->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/databasename?characterEncoding=UTF-8</property>
<!-- JDBC驱动类 -->
<!--
至于需要添加的jar包,自己百度下面的驱动类名,就可以找到了
MySQL 数据库驱动:com.mysql.jdbc.Driver
SQL Server 数据库驱动: com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle 数据库驱动:oracle.jdbc.driver.OracleDriver
-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 用户名 -->
<!--
MySQL数据库默认用户名是 root
Oracle数据库默认用户名为 sysdba
SQL Server 数据库默认用户名为 sa
-->
<property name="hibernate.connection.username">root</property>
<!-- 密码,不用解释吧 -->
<property name="hibernate.connection.password">123456</property>
<!-- Hibernate数据库方言 -->
<!--
MySQL数据库方言为 org.hibernate.dialect.MySQLDialect
Oracle9i/10g 数据库方言为 org.hibernate.dialect.Oracle9Dialect
SQL Server 数据库方言为 org.hibernate.dialect.SQLServerDialect
-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否在控制台显示SQL语句 ,方便调试。开发过程可以设为true,开发结束以后设为false-->
<!--
允许的值为true 和 false
-->
<property name="hibernate.show_sql">false</property>
<!-- 配置数据库连接池 ,,默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。但这个连接池性能不佳,且存在诸多BUG。Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool-->
<!-- Hibernate连接池类名,我现在用的是C3P0 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 最大连接数 -->
<property name="hibernate.c3p0.max_size">100</property>
<!-- 最小连接数 -->
<property name="hibernate.c3p0.min_size">10</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位秒 -->
<property name="hibernate.c3p0.timeout">120</property>
<!-- 最大的预编译语句的数量 -->
<property name="hibernate.c3p0.max_statements">50</property>
<!-- 每隔多少秒检查连接池里的空闲连接 ,单位是秒-->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接是否可用,允许值true,false -->
<property name="hibernate.c3p0.validate">true</property>
<!-- 指定的映射-->
<!--
映射通常有两种形式,一种是<mapping resource="com/mycom/entity/User.hbm.xml"/>,这种形式是通过映射文件来处理映射关系的,笔者的建议是,如果你想通过数据库生成java类,那么你就用这种方式。直接利用HibernateSychronizer插件来生成。否则的话,配置xml文件极为繁琐,而且当变动数据库模型的时候,有可能出错
一种是 <mapping class="com.mycom.entity.User"/>这种形式,这种方式通常是利用java类来生成数据库表(当然前提是要配置hibernate.hbm2ddl.auto属性喽),这种方式是直接在Java类里面用@annotation来标注,详细请察看笔者的另一篇文章 http://titanseason.iteye.com/blog/1279198
-->
<mapping class="com.mycom.entity.User"/>
<mapping class="com.mycom.entity.Role"/>
<!--
<mapping resource="com/mycom/entity/User.hbm.xml"/>
<mapping resource="com/mycom/entity/User.hbm.xml"/>
-->
分享到:
相关推荐
### Struts+Spring+Hibernate配置说明 #### 一、引言 在现代企业级应用开发中,Struts、Spring 和 Hibernate 是三个非常重要的框架。它们分别用于构建MVC(Model-View-Controller)架构的视图层、控制层以及持久化...
这个压缩包文件很可能是为了帮助开发者理解这三个框架如何协同工作,并提供了配置说明和源码示例。 Struts2作为MVC框架,其核心是Action,它接收用户请求并调用业务逻辑。Struts2的配置文件(struts.xml)定义了...
### Hibernate与Spring集成配置详解 #### 一、概述 在现代Java企业级应用开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,能够极大简化数据库操作;而Spring作为一个全面的企业级应用开发框架,提供了...
Hibernate连接SQLite配置步骤: 1、添加SQLite库: 1.1、将两个jar包:com.zy.hibernate.dialect.SQLiteDialect.jar、sqlite-jdbc-3.7.2.jar拷贝到“\WEB-INF\lib”文件夹下; 2、配置hibernate: 2.1、将...
Hibernate配置文件说明 创建hibernate.cfg.xml
### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库...
### Hibernate配置数据库连接知识点详解 #### 一、Hibernate简介与作用 Hibernate 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,用于 Java 应用程序与关系型数据库之间的交互。它允许开发者以...
### Hibernate 连接池配置详解 #### 一、概述 在使用Hibernate进行数据库操作时,合理配置连接池是非常重要的一步。连接池可以帮助我们更高效地管理数据库连接资源,避免频繁创建与销毁数据库连接带来的性能开销。...
【hibernate配置详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了...请仔细阅读`经典hibernate配置详解.htm`中的详细说明,结合实际项目进行练习,相信你将很快成为Hibernate配置的专家。
以下是对Hibernate配置连接池的三种常见方法的详细说明: 1. **C3P0连接池配置** C3P0是一个开源的JDBC连接池,适用于Hibernate。配置C3P0连接池主要涉及在`hibernate.cfg.xml`中添加相应的属性。例如: ```xml ...
在Myeclipse中配置Hibernate以连接Oracle10g数据库是一项常见的开发任务,这涉及到多个步骤,包括设置数据库连接、添加驱动、配置Hibernate项目以及生成相关的配置文件。以下是对这个过程的详细说明: 首先,你需要...
以上是对“hibernate说明文档”标题和描述中的关键知识点的详细介绍,旨在帮助读者深入了解Hibernate的工作原理及其应用场景。通过掌握这些核心概念和技术,开发者可以更加高效地使用Hibernate框架来处理复杂的...
**hibernate全套资料文档API及配置说明文档** 在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发人员使用面向对象的编程方式来操作数据库,从而降低了数据库操作的复杂性。这个压缩包...
### Hibernate的配置与使用详解 #### 一、Hibernate概述 Hibernate是一种开源的对象关系映射(Object-Relational Mapping,简称ORM)框架,它为Java应用提供了利用SQL数据的持久化解决方案。通过ORM技术,开发人员...
在这个配置说明中,开发者使用的是Struts2.3、Spring3.1.2和Hibernate4.1.6的版本。 首先,我们需要了解这三大框架的基本作用: - **Struts2**:是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,...
二、Hibernate配置文件 在使用Hibernate时,首先需要配置一个名为`hibernate.cfg.xml`的配置文件。该文件中包含了数据库连接信息、方言设置、缓存配置等关键参数。例如: ```xml <hibernate-configuration> ...
以上是Hibernate配置的基本知识,理解并正确配置这些属性是使用Hibernate的前提。在实际项目中,还需要根据具体需求调整和优化配置,以实现最佳的性能和灵活性。在学习过程中,结合源代码和示例实践将有助于更好地...
-- Hibernate配置属性 --> <property name="show_sql">true <property name="format_sql">true <property name="hbm2ddl.auto">update <property name="current_session_context_class">thread ...
配置数据库连接参数是Hibernate配置中的关键部分。例如,对于MySQL数据库,我们可以设置以下属性: - `hibernate.dialect` 指定所使用的数据库方言,这里是`net.sf.hibernate.dialect.MySQLDialect`,确保Hibernate...