`
linwei_211
  • 浏览: 188131 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate与数据库连接的几种方式

 
阅读更多
三种连接都是以连接MySQl为例。 

<!-- JDBC驱动程序 --> 
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</property> <!-- 数据库用户名 --> 
<property name="connection.username">root</property> <!-- 数据库密码 --> 
<property name="connection.password">8888</property> 

上面的一段配置,在c3p0和dbcp中,都是必需的,因为hibernate会根据上述的配置来生成connections,再交给c3p0或dbcp管理.但是,proxool则不能,虽然说服文档上说proxool也可以和hibernate结合,但我按照官方文档上的说明怎么配也出错,而且,到了sun和hibernat有的官方网站上问了几天,都没有一个人回复。后来我只能让proxool自身来生成连接,这在下面再讲。 


1 C3P0 

只需在hibernate.cfg.xml中加入 
<property name="c3p0.min_size">5</property> 
<property name="c3p0.max_size">30</property> 
<property name="c3p0.time_out">1800</property> 
<property name="c3p0.max_statement">50</property> 

还有在classespath中加入c3p0-0.8.4.5.jar 


2 dbcp 

在hibernate.cfg.xml中加入 

<property name="dbcp.maxActive">100</property> 
<property name="dbcp.whenExhaustedAction">1</property> 
<property name="dbcp.maxWait">60000</property> 
<property name="dbcp.maxIdle">10</property> 

<property name="dbcp.ps.maxActive">100</property> 
<property name="dbcp.ps.whenExhaustedAction">1</property> 
<property name="dbcp.ps.maxWait">60000</property> 
<property name="dbcp.ps.maxIdle">10</property> 


还有在classespath中加入commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar. 


3 proxool 

在hibernate.cfg.xml中加入 

<property name="proxool.pool_alias">pool1</property> 
<property name="proxool.xml">ProxoolConf.xml</property> 
<property name="connection.provider_class">net.sf.hibernate.connection.ProxoolConnectionProvider</property> 

然后,在和hibernate.cfg.xml同一个目录下,加一个ProxoolConf.xml文件,内容为 

<?xml version="1.0" encoding="utf-8"?> 
<!-- the proxool configuration can be embedded within your own application's. 
Anything outside the "proxool" tag is ignored. --> 
<something-else-entirely> 
<proxool> 
<alias>pool1</alias> 
<!--proxool只能管理由自己产生的连接--> 
<driver-url>jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</driver-url> 
<driver-class>org.gjt.mm.mysql.Driver</driver-class> 
<driver-properties> 
<property name="user" value="root"/> 
<property name="password" value="8888"/> 
</driver-properties> 
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁--> 
<house-keeping-sleep-time>90000</house-keeping-sleep-time> 
<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受--> 
<maximum-new-connections>20</maximum-new-connections> 
<!-- 最少保持的空闲连接数--> 
<prototype-count>5</prototype-count> 
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定--> 
<maximum-connection-count>100</maximum-connection-count> 
<!-- 最小连接数--> 
<minimum-connection-count>10</minimum-connection-count> 
</proxool> 
</something-else-entirely> 


并在classespath中加入proxool-0.8.3.jar
分享到:
评论

相关推荐

    Hibernate实践例子程序

    2. JDBC数据库连接驱动。以mysql为例,mysql-connector-java-3.1.×-bin.jar。 3. 配置文件。 1) Hibernate全局配置文件,hibernate.properties或者hibernate.cfg.xml.。一般使用XML文件。 2) 数据O/R mapping ...

    bbs论坛需求概述和数据库概要设计

    再由中间层与数据库交互 表现层是传统的JSP技术 中间层采用的是流行的Spring+Hibernate 为了将控制层与业务逻辑层分离 又细分为以下几种 "&gt;BBS中采用Spring struts hibernate三大开源框架 是典型的J2EE三层结构 分为...

    db-crud:Java操作数据库的常见方式,多种框架使用示例

    Java数据库操作的几种方式 基于Java实现。 项目内容 项目简介 项目起因 本项目主要提供Java操作数据的几种方式示例。 项目框架 db-jdbc: 基于JDBC实现 db-dhcp: 基于数据库连接池实现 db-mybatis: 基于Mybatis框架...

    java jdbc原生连接+连接池.zip

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问解决部分mybatis或者hibernate不支持的数据库,例informix。通过pool连接池提高性能,并将...

    支持多数据库的ORM框架ef-orm.zip

    事实上JPA的几种数据查询方式存在青黄不接的问题。选择查询语言xxQL,项目面临后续维护困难,跨数据库移植性差;选择Criteria API,代码臃肿,操作繁琐,很多人望而却步。EF的设计思想是使人早日摆脱拼装SQL/HQL/...

    ssh(structs,spring,hibernate)框架中的上传下载

     LobHandler必须注入到Hibernate会话工厂sessionFactory中,因为sessionFactory负责产生与数据库交互的Session。LobHandler的配置如代码 5所示:  代码 5 Lob字段的处理句柄配置 1. 2. … 3. 4. class="org....

    java面试题

    52.8. 有几种开源的数据库连接池: 29 53. 描述一下JVM加载class文件的原理机制? 30 54. socket编程 30 54.1. 什么是TCP/IP、UDP? 30 54.2. Socket在哪里呢? 31 54.3. Socket是什么呢? 32 54.4. socket的实现步骤...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    随着博客人数的增加, Blog 作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一...

    删掉,复制别人东西,怕侵权,原本只想收藏的

    我们可以通过POJO直接操作数据库的数据,他提供的是一种全表映射的模型。相对而言,Hibernate对JDBC的封装程度还是比较高的,我们已经不需要写SQL,只要使用HQL语言就可以了。 使用Hibernate进行编程有以下好处:

    DBKING使用指南

    可以通过配置方式指定数据源,也可以通过硬代码方式指定数据源,甚至通过第三方获取数据库连接的方式都是可以的。 目前工具在Oracle 11g、Microsoft SQLServer 2012、MySQL 5.x、DB2 10.x、Sybase 15.x、...

    基于struts+hibernate+spring+easyui+mysql的网上商城项目实战源码.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    codetool:一个java代码生成工具,支持hibernate,mybatis,jdbc三种数据持久层框架,标准的mvc模式代码

    codetool一个java代码生成工具,支持hibernate,mybatis,jdbc三种数据持久层框架,标准的mvc模式代码该工具按照MVC标准代码结构生成对应的Mapper.xml, Dao接口,Service接口和实现,Controller以及对应的CRUD页面,...

    2013java面试题搜集

    有几种方式? 5、spring底层用什么实现? 6、hibernate和Jdbc的区别 7、Hibernate与Ibatis的区别 8、Struts2和1的区别 9、Struts2的执行机制 10、ConnectionPool的底层,不是问你设计模式 11、用java,实现 C...

    Java常见面试题208道.docx

    116.hibernate 有几种查询方式? 117.hibernate 实体类可以被定义为 final 吗? 118.在 hibernate 中使用 Integer 和 int 做映射有什么区别? 119.hibernate 是如何工作的? 120.get()和 load()的区别? 121.说一下 ...

    database-profile-plugin:支持通过配置文件对多个数据库进行测试

    数据库配置文件插件 目标 这个插件的目的是用用户可以在运行测试时选择的命名数据库配置文件的思想... 可以用几种不同的方式定义配置文件,但是所有Profile最终都将创建一个Profile ,并将所有DslExtension#profiles添

    Java面试宝典2020修订版V1.0.1.doc

    11、列举几种表连接方式,有什么区别? 43 12、主键和外键的区别? 44 13、在数据库中查询语句速度很慢,如何优化? 44 14、数据库三范式是什么? 44 15、union和union all有什么不同? 45 16、char、varchar2、varchar...

    计算机专业毕业实习日记.docx

    Hibernate就是这样一种框架。以前Java程序员与数据库打交道都是通过JDBC,还要写 SQL语句,不过Hibernate彻底改变了这一切,它在JDBC之上又作了一次封装,从而实现了不用写SQL语句就可以实现操作数据库。 值得提醒的...

    Java语言基础下载

    连接数据库的几种方式 321 JAVA编程语言和JDBC 323 JDBC编程的步骤 323 实例分析 325 内容总结 335 独立实践 336 第二十章:高级JDBC 337 学习目标 337 使用DDL,DML语言对数据库进行基本操作 338 查询数据库里的数据...

    Diet-Tracker:Web应用程序,用于跟踪个人饮食并保持健康

    一项记录可能有几种食物 一种食物可能有很多图像 一条记录只能有一个用户 项目方式 创建的用户,食物,图像,记录域 使用Hibernate进行数据库架构迁移 使用JDBC将项目与Postgres连接 配置用于身份验证的Spring ...

Global site tag (gtag.js) - Google Analytics