`
titanseason
  • 浏览: 180741 次
社区版块
存档分类
最新评论

Hibernate配置说明

阅读更多

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"/>
-->
 

 

 

 

7
4
分享到:
评论
4 楼 tuweijie 2011-11-28  
bzdfccc
3 楼 xiangqian0505 2011-11-28  
ddfwgwgrgwgwg
2 楼 chenzhou123520 2011-11-28  
不错,我以前学Hibernate的时候也是这么做的笔记。随时可以回头去查阅
1 楼 qin_eye 2011-11-27  
冲着楼主写了这么多,这么详细,我先收 藏一下

相关推荐

    基于深度学习的零样本识别.zip

    基于深度学习的零样本识别.zip

    《大数据原理》LSH算法实现

    用map-reduce的形式实现了LSH算法

    Text-2024-05-09 17-11-33.txt

    Text-2024-05-09 17-11-33.txt

    node-v6.14.4-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于springboot的电影院订票管理系统

    开发语言:Java JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.6/5.7(或8.0) 数据库工具:Navicat 开发软件:idea 依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行 2.需要远程帮忙部署项目,需要额外付费 3.本项目有演示视频,如果需要观看,请联系我v:19306446185 4.调试过程中可帮忙安装IDEA,eclipse,MySQL,JDK,Tomcat等软件 重点: 需要其他Java源码联系我,更多源码任你选,你想要的源码我都有! https://img-blog.csdnimg.cn/direct/e73dc0ac8d27434b86d886db5a438c71.jpeg

    基于深度学习的舌象诊断系统源码+文档说明.zip

    基于深度学习的舌象诊断系统源码+文档说明.zip

    2023-04-06-项目笔记 - 第一百二十八阶段 - 4.4.2.126全局变量的作用域-126 -2024.05.09

    2023-04-06-项目笔记-第一百二十八阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.126全局变量的作用域_126 - 2024-05-09

    深度学习入门-基于python的理论与实现.zip

    深度学习入门-基于python的理论与实现.zip

    基于python的气象数据处理

    数据处理 |--- 处理气象数据(nc文件) 操作说明: nc 文件命名为:deal_nc.nc,放到data目录下 1、 执行parse_nc.py,解析nc文件,同时在data目录下生成.npy数据文件 2、 执行draw_data.py ,获取.npy数据,并绘制图形

    TPE5608通讯管理机底层

    TPE5608通讯管理机底层

    机器学习,深度学习基础模型实现,基础组件,便于快速复用与集成.zip

    机器学习,深度学习基础模型实现,基础组件,便于快速复用与集成.zip

    node-v6.5.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v7.0.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    医院机房建设清单明细及报价.xls

    文章摘要 智慧医院智能化系统建设方案旨在通过智能化手段提升医院的安全性、舒适性、便捷性和效率。该方案规划了四大类子系统:平台、应用、节能和安全,以打造一个高效的医疗环境。 信息设施系统:包括综合布线系统、信息网络系统、多媒体会议系统等,旨在为医院提供稳定、高速的网络服务。综合布线系统采用6类非屏蔽铜缆和光纤,支持多种业务信息的传输。信息网络系统采用以太网交换技术和树型网络结构,确保网络的稳定性和安全性。 信息化应用系统:包括信息查询系统、分诊排队叫号系统、ICU探视系统等,通过信息技术提高医疗服务的质量和效率。信息查询系统便于病员及家属查询医院信息,分诊排队叫号系统优化就诊流程,ICU探视系统通过音视频技术实现远程探视和监护。 安全防范系统:针对医患关系敏感、医疗纠纷、医护人身安全等问题,设计了安防音视频监控系统、电子巡更系统、门禁系统等,以提高医院的安全管理水平。安防音视频监控系统在关键区域设置监控摄像机,电子巡更系统确保巡更人员按时按路线完成任务,门禁系统通过权限管理控制人员出入。 机房建设工程:包括机房配电系统、防雷接地系统、消防系统等,确保机房设备的安全稳定运行。机房供配电系统采用普通电源和不间断电源,消防系统采用无管网七氟丙烷气体灭火系统,防雷系统采用三级防雷措施,机房空调系统保持适宜的温度和湿度。 方案特色:紧扣标准、安全简便、统一融合、可视操作、事前预防、智能管控。通过智能化系统的设计和实施,医院能够更有效地进行安全管理,提高医疗服务质量,同时降低维护成本和提升运营效率。

    da_1715269209522..apk

    da_1715269209522..apk

    node-v6.9.5-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    typescript-3.7.6.tgz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于上下文特征,使用机器学习以及深度学习的方法对复杂长句进行切分

    深度学习(也称为深度结构化学习或分层学习)是基于人工神经网络的更广泛的机器学习方法族的一部分。学习可以是有监督的、半监督的或无监督的。[1][2][3] 深度学习架构,例如深度神经网络、深度信念网络、循环神经网络和卷积神经网络,已经被应用于包括计算机视觉、语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译、生物信息学、药物设计、医学图像分析、材料检查和棋盘游戏程序在内的领域,在这些领域中,它们的成果可与人类专家媲美,并且在某些情况下胜过人类专家。[4][5][6] 神经网络受到生物系统中信息处理和分布式通信节点的启发。人工神经网络与生物大脑有各种不同。具体而言,神经网络往往是静态和象征性的,而大多数生物的大脑是动态(可塑)和模拟的大多数现代的深度学习模型基于人工神经网络,特别是卷积神经网络(CNN),尽管它们也可以包括命题公式或在深度生成模型中逐层组织的潜变量,例如深度信念网络和深度玻尔兹曼机中的节点。[11] 在深度学习中,每一级学习将其输入数据转换成稍微抽象和复合的表示。在图像识别应用中,原始输入可以是像素矩阵;第一代表层可以提取像素并编码边缘;第二层可以组成和编码边缘

    app.js

    app.js

    node-v18.13.0-headers.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics