这是我配置后连接的数据库,能不能帮我改成直连路由数据库实现啊,重谢,急求!

Java数据库连接池的几种配置方法(以MySQL数据库为例)
作者:付博瀚
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Java数据库连接池的几种配置方法(以MySQL数据库为例) 的相关资料,需要的朋友可以参考下
一.Tomcat配置数据源:
前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中
1.方法一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,如下:
&?xml version="1.0" encoding="UTF-8"?&
&Resource name="jdbc/chaoshi" auth="Container"
type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/DBName" &
&/Resource&
&/Context&
方法二:在tomcat的目录conf下面的context.xml中,修改原来的context标签,改成:
&!-- Default set of monitored resources --&
&WatchedResource&WEB-INF/web.xml&/WatchedResource&
&Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testdb" /&
&/Context&
方式三:在配置虚拟目录时,即在配置conf下面的server.xml时,在context标签内改成:
&Context path="/WebRoot" reloadable="true"
docBase="E:\workspace\DataSource\WebRoot" &
&Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000"
logAbandoned="true"
username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testdb" /&
&/Context&
&/配置文件中Resource标签中各属性的含义:
driverClassName - JDBC 所用到的数据库驱动的类全名.
maxActive - 连接池在同一时刻内所提供的最大活动连接数。
maxIdle - 连接池在空闲时刻保持的最大连接数.
maxWait - 当发生异常时数据库等待的最大毫秒数 (当没有可用的连接时).
username - 连接数据库时登录名
password - 连接数据库的密码.
url - 连接至驱动的URL. (为了向后兼容, DRIVERNAME也被允许.)
测试代码:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/test");
System.out.println(ds.getConnection());
打印出来不是null应该就成功了。
注意,测试的时候要在tomcat内测试,也就是要在TOMCAT这个容器内(不要闲麻烦,写个简单的JSP页面测下,用个&%...%&就可以了,相当简单的)。不在tomcat这个容器里面测,会抛异常:
... javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
二,Hibernate配置连接池有三种方法:
方法1 使用Hibernate自带的连接池。
&hibernate-configuration&
&session-factory &
&!--JDBC驱动程序--&
&property name="connection.driver_class"&com.mysql.jdbc.Driver&/property&
&!-- 连接数据库的URL--&
&property name="connection.url"&
jdbc:mysql://localhost:3306/feifei
&/property&
&!--连接的登录名--&
&property name="connection.username"&root&/property&
&!--登录密码--&
&property name="connection.password"&&/property&
&!--是否将运行期生成的SQL输出到日志以供调试--&
&property name="show_sql"&true&/property&
&!--指定连接的语言--&
&property name="dialect"&org.hibernate.dialect.MySQLDialect&/property&
&!--映射资源--&
&mapping resource="/xx/xx.hbm.xml" /&
&/session-factory&
&/hibernate-configuration&
我自己的配置如下,注释的部分,他是公用的,其它的连接池需要用到!
&hibernate-configuration&
&session-factory&
&property name="show_sql"&true&/property&
&!-- common conf dbcp/c3p0 needed
&property name="connection.username"&informix&/property&
&property name="connection.password"&informix&/property&
&property name="connection.driver_class"&rmix.jdbc.IfxDriver&/property&
&property name="connection.url"&
jdbc:informix-sqli://192.168.0.188:1526/db_crm:informixserver=ol_NEWLOCALE=zh_cn,en_NEWCODESET=gbk,;
&/property&
&property name="dialect"&
com.huatech.mon.dao.hibernate.dialet.BaseInformixDialect
&/property&
... ... ... ...
&/session-factory&
&/hibernate-configuration&
方式2: 使用配置文件指定的数据库连接池。
连接池现在有dbcp、c3p0、proxoop,其实我原来就知道dbcp
其中dbcp、c3p0的配置只需要在 上面 的配置上加入些配置就行,hibernate会自动识别数据库连接池
配置dbcp需要加入:
&!-- dbcp conf
&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&
配置c3p0需要加入:
&!-- c3p0 conf
&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&
配置proxoop有些不同,不能仅仅加入,还需要改动:
基本配置如下:
&property name="proxool.pool_alias"&dbpool&/property&
&property name="proxool.xml"&test/huatech/conf/ProxoolConf.xml&/property&
&property name="connection.provider_class"&org.hibernate.connection.ProxoolConnectionProvider&/property&
特别注意:下面文件的路径要配置正确,否则FileNotFound
关联文件:test/huatech/conf/ProxoolConf.xml配置如下:
&?xml version="1.0" encoding="utf-8"?&
&something-else-entirely&
&alias&dbpool&/alias&
&!--proxool只能管理由自己产生的连接--&
&driver-url&
jdbc:informix-sqli://192.168.0.188:1526/db_crm:informixserver=ol_NEWLOCALE=zh_cn,en_NEWCODESET=gbk,;
&/driver-url&
&driver-class&rmix.jdbc.IfxDriver&/driver-class&
&driver-properties&
&property name="user" value="informix" /&
&property name="password" value="informix" /&
&/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&
方式3: 从容器中获取得到连接池(如:Tomcat)
用服务器本身的连接池:如Tomcat、resin、weblogic等
hibernate配置如下:
&property name="hibernate.connection.datasource"&
java:comp/env/jdbc/crm
&/property&
&property name="show_sql"&true&/property&
&property name="dialect"&
com.huatech.mon.dao.hibernate.dialet.BaseInformixDialect
&/property&
&property name="hibernate.generate_statistics"&true&/property&
其中java:comp/env/jdbc/crm的jdbc/crm是对应的服务器中数据库连接池名字,需要在对应的环境中配置
Tomcat配置如第一种Tomcat配置方式所描述,注意jndi的name根据情况修改,要与hibernate所使用的名字对应起来。
========================================
上面配置中需要用到各自数据库连接池的jar包,在hibernate包中有,如果需要最新的可以到各自网站下载。
三,Spring配置连接池的方法:
&bean id="dataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"&
&property name="driverClassName"&
&value&com.mysql.jdbc.Driver&/value&
&/property&
&property name="url"&
&value&jdbc:mysql://localhost:3306/dbname&/value&
&/property&
&property name="username"&
&value&root&/value&
&/property&
&property name="password"&
&value&******&/value&
&/property&
&property name="maxActive"&
&value&100&/value&
&/property&
&property name="maxWait"&
&value&1000&/value&
&/property&
&property name="maxIdle"&
&value&30&/value&
&/property&
&property name="defaultAutoCommit"&
&value&true&/value&
&/property&
&property name="removeAbandoned"& //自动回收连接池,避免连接池泄露
&value&true&/value&
&/property&
&property name="removeAbandonedTimeout"&
&value&60&/value&
&/property&
四,也是我今天要说的最后一种,则是通过代码的编写配置连接池,代码如下:
import java.sql.*;
import java.sql.DataS
import mons.dbcp.BasicDataS
public class ConnectionPool{
private static BasicDataSource dbs =
public static DataSource setupDataSource(){
bds = new BasicDataSource();
//设置驱动程序
bds.sestDriverClassName("com.mysql.jdbc.Driver");
//设置连接用户名
bds.setUsername("root");
//设置连接密码
bds.setPassword("root");
//设置连接地址
bds.setUrl("jdbc:mysql://localhost:3306/databasename");
//设置初始化连接总数
bds.setInitialSize(50);
//设置同时应用的连接总数
bds.setMaxActive(-1);
//设置在缓冲池的最大连接数
bds.setMaxIdle(-1);
//设置在缓冲池的最小连接数
bds.setMinIdle(0);
//设置最长的等待时间
bds.setMaxWait(-1);
return (DataSource)
//显示连接池的连接个数的方法
public static void printDataSourceStats(DataSource ds) throws SQLException{
bds = (BasicDataSource)
System.out.println();
System.out.println();
//关闭连接池的方法
public static void shutdownDataSource(DataSource ds) throws SQLException{
bds = (BasicDataSource)
bds.close();
要获得连接池只许使用该类的静态方法setupDataSource()即可
以上所述是小编给大家介绍的Java数据库连接池的几种配置方法(以MySQL数据库为例),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。你的位置:
SQL数据库被以前老备份文件覆盖了,能帮我把SQL数据库恢复到被覆盖之前的数据库
SQL数据库被以前老备份文件覆盖了,能帮我把SQL数据库恢复到被覆盖之前的数据库
这个是不可能滴
SQL原数据库被覆盖还原,以前的数据能找回来吗——
以前你的数据库的日志文件还在不 也被覆盖了咩? mm一抹眷恋 | 发布于2012...2013-11...SQL Server复原bak文件时选择覆盖会否删除原有数据——
很简单,你新建一个数据库之后,还原到新的数据库上看看到底是怎么一回事儿就好了. 另外备份如果数据库不...SQL2000数据库没有备份后数据被覆盖,有没有什么恢复数据的方法?——
\解决方案:按一步一步操作到第四步 - &&点击“选项” - &“”恢复“ & 格式:安装目录\ M...SQL数据库删除了一些数据,删之前有作过备份。删除之后又有添加新的数据。现在我想直接还原备份恢复之——
直接还原备份恢复之前删除的数据,会覆盖之后新的数据。 新的数据 如果好插入的话,就还原后重新插入吧sql数据库覆盖掉了没备份怎么恢复——
只能做文件碎片恢复了,SQLSERVER2005数据库被误还原覆盖,有没有办法恢复回去——
覆盖的数据都是没有办法的,只能是在重新做啦,数据库覆盖的话,专业数据恢复公司也没有办法的SQL2008数据库被强制还原覆盖了,没有备份,能复回来吗?找回一个存储过程也可以!求大侠,必有重谢...——
没有备份被还原覆盖是不可以找回的哈.以后要注意随时备份哦sql数据库被覆盖掉了 只有数据日志文件记录 没有数据备份 怎么还原数据——
难道你的数据库文件没有被覆盖掉? 那你可以尝试,把数据库文件加载道数据库中,试试。你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗?可以给联系方式我请教一下...——
哦,god save you, 业务生产库动错的很麻烦啊,你的库的日志模式是完整模式吗full, 以...在SQL中一个备份设备能不能备份多个数据库?后来备份到备份设备的数据库会不会覆盖原来备份的数据库?——
  首先,你所用的数据库是什么数据库?备份库可以建立N多,比如oracle数据库,你可以用exp命令...
相关链接SQL原数据库被覆盖还原,以前的数据能找回来吗sql2005 数据库文件太大,怎么备份比较快?数据库SQL 如何完全备份怎么实现数据库备份到本地,然后恢复怎么查看数据库的历史备份情况SqlServer备份数据库的4种方式有哪些某数据库配置时把数据库文件、备份文件、日志文件放在同一个硬盘上,是否合适?并说明理由。我的个.bak的数据库备份格式文件,怎样还原还.mdb的数据库文件。谁帮我还原下。我发给他网站源码/...sql server 2008 恢复数据库,备份文件在不同盘不能用.数据库出现这样的问题 自从上次检索数据后 更新的行已被更改或删除大侠们,帮忙啊!!!两个数据库的连接问题
大侠们,帮忙啊!!!两个数据库的连接问题
发布时间: 22:19:15
编辑:www.fx114.net
本篇文章主要介绍了"大侠们,帮忙啊!!!两个数据库的连接问题
0",主要涉及到大侠们,帮忙啊!!!两个数据库的连接问题
0方面的内容,对于大侠们,帮忙啊!!!两个数据库的连接问题
0感兴趣的同学可以参考一下。
两个数据库分别在两个不同的机子上,想把他们连接起来,实现同时查询,可能吗?
1、sid:prince
&&&ip:192.168.0.1
2、sid:princess
&&&ip:&192.168.0.2
可不可以实现&select&a.*,b.*&from&prince.tablename&a,princess.tablename&b
听说建立dblink可以,但怎么建?不会建!&在&
sid:princess
&&&ip:&192.168.0.2
机器B上建立:
create&database&link&mydbl_prince&connect&to&system&identified&by&manager&
using&'mydblstr_prince';
select&a.*,b.*&from&_prince&a&,princess.tablename&b
不过要在机器b上的tnsnames.ora文件中加入你所建立的mydblstr_prince
mydblstr_prince=
&&(DESCRIPTION&=
&&&&(ADDRESS_LIST&=
&&&&&&(ADDRESS&=&(PROTOCOL&=&TCP)(HOST&=&192.168.0.1)(PORT&=&1521))
&&&&(CONNECT_DATA&=
&&&&&&(SERVICE_NAME&=&prince)&&--此处为机器a的sid
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:}

我要回帖

更多关于 双机直连 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信