- 浏览: 103918 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
无锡:
http://m.weather.com.cn/data/10 ...
中国天气网接口 返回json格式分析说明 -
wei705026811:
博主。。那个为什么我获取的时候没data:辛卯年
中国天气网接口 返回json格式分析说明 -
luguouyujian:
99 的意思是指 更之前的那个天气一样。比如Image10 ...
中国天气网接口 返回json格式分析说明 -
Ueaner:
辛苦啦~~
中国天气网接口说明及城市编码全部 为天气开发做铺垫 -
zhaiweij:
这个接口是免费的么???
中国天气网接口 返回json格式分析说明
1、proxool是一个非常优秀的数据库连接池框架。其常用配置属性如下,其中红体字为必配项,蓝体字为建议配置项,其他非必要可采用默认值。
alias:别名,用于获取数据库连接。
driver-url:数据库访问url。
driver-class:驱动类路径,包括包名
driver-properties:传给驱动的属性,常用的有:user:数据库用户名,password:数据库密码
fatal-sql-exception: 它是一个逗号分割的信息片段.当一个SQL异常发生时,他的异常信息将与这个信息片段进行比较.如果在片段中存在,那么这个异常将被认为是个致命错误(Fatal SQL Exception ).这种情况下,数据库连接将要被放弃.无论发生什么,这个异常将会被重掷以提供给消费者.用户最好自己配置一个不同的异常来抛出.
fatal-sql-exception-wrapper-class:正如上面所说,你最好配置一个不同的异常来重掷.利用这个属性,用户可以包装SQLException,使他变成另外一个异常.这个异常或者继承SQLException或者继承字RuntimeException.proxool自带了2个实现:'org.logicalcobwebs.proxool.FatalSQLException' 和'org.logicalcobwebs.proxool.FatalRuntimeException' .后者更合适.
house-keeping-sleep-time: house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建.
house-keeping-test-sql: 如果发现了空闲的数据库连接.house keeper 将会用这个语句来测试.这个语句最好非常快的被执行.如果没有定义,测试过程将会被忽略(如:select 0)。
injectable-connection-interface: 允许proxool实现被代理的connection对象的方法.
injectable-statement-interface: 允许proxool实现被代理的Statement 对象方法.
injectable-prepared-statement-interface: 允许proxool实现被代理的PreparedStatement 对象方法.
injectable-callable-statement-interface: 允许proxool实现被代理的CallableStatement 对象方法.
jmx: 略
jmx-agent-id: 略
jndi-name: 数据源的名称
maximum-active-time: 如果housekeeper 检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程.所以确认一下你的服务器的带宽.然后定一个合适的值.默认是5分钟.
maximum-connection-count: 最大的数据库连接数.
maximum-connection-lifetime: 一个线程的最大寿命.
minimum-connection-count: 最小的数据库连接数
overload-without-refusal-lifetime: 略
prototype-count: 连接池中可用的连接数量.如果当前的连接池中的连接少于这个数值.新的连接将被建立(假设没有超过最大可用数).例如.我们有3个活动连接2个可用连接,而我们的prototype-count是4,那么数据库连接池将试图建立另外2个连接.这和 minimum-connection-count不同. minimum-connection-count把活动的连接也计算在内.prototype-count 是spare connections 的数量.
recently-started-threshold: 略
simultaneous-build-throttle: 略
statistics: 连接池使用状况统计。 参数“10s,1m,1d”
statistics-log-level: 日志统计跟踪类型。 参数“ERROR”或 “INFO”
test-before-use: 略
test-after-use: 略
trace: 如果为true,那么每个被执行的SQL语句将会在执行期被log记录(DEBUG LEVEL).你也可以注册一个ConnectionListener (参看ProxoolFacade)得到这些信息.
verbose: 详细信息设置。 参数 bool 值
部分默认值:
maximum-connection-lifetime 最大连接生命周期 默认值:4小时
maximum-active-time: 最大活动时间 默认值:5分钟
maximum-connection-count 最大连接数 默认值:15个
minimum-connection-count 最小连接数 默认值:5个
2、举例(各种数据库的驱动参见附件):
a、SQL Server2000(或2005)配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <something-else-entirely>
- <proxool>
- <alias>erp</alias>
- <driver-url>
- jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=db_test;
- </driver-url>
- <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
- <driver-properties>
- <property name="user" value="sa" />
- <property name="password" value="123456" />
- <property name="autoReconnect" value="true" />
- </driver-properties>
- <minimum-connection-count>5</minimum-connection-count>
- <maximum-connection-count>50</maximum-connection-count>
- <house-keeping-sleep-time>30</house-keeping-sleep-time>
- <maximum-active-time>600000</maximum-active-time>
- <house-keeping-test-sql>select 0</house-keeping-test-sql>
- </proxool>
- </something-else-entirely>
<?xml version="1.0" encoding="UTF-8"?> <something-else-entirely> <proxool> <alias>erp</alias> <driver-url> jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=db_test; </driver-url> <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="sa" /> <property name="password" value="123456" /> <property name="autoReconnect" value="true" /> </driver-properties> <minimum-connection-count>5</minimum-connection-count> <maximum-connection-count>50</maximum-connection-count> <house-keeping-sleep-time>30</house-keeping-sleep-time> <maximum-active-time>600000</maximum-active-time> <house-keeping-test-sql>select 0</house-keeping-test-sql> </proxool> </something-else-entirely>
b、Oracle配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <something-else-entirely>
- <proxool>
- <alias>orc</alias>
- <driver-url>
- jdbc:oracle:thin:@192.168.0.1:1521:db_test
- </driver-url>
- <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
- <driver-properties>
- <property name="user" value="system" />
- <property name="password" value="manager" />
- </driver-properties>
- <minimum-connection-count>1</minimum-connection-count>
- <maximum-connection-count>20</maximum-connection-count>
- <house-keeping-sleep-time>30</house-keeping-sleep-time>
- <maximum-active-time>600000</maximum-active-time>
- <house-keeping-test-sql>select 0</house-keeping-test-sql>
- <trace>false</trace>
- <statistics-log-level>ERROR</statistics-log-level>
- </proxool>
- </something-else-entirely>
<?xml version="1.0" encoding="UTF-8"?> <something-else-entirely> <proxool> <alias>orc</alias> <driver-url> jdbc:oracle:thin:@192.168.0.1:1521:db_test </driver-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <driver-properties> <property name="user" value="system" /> <property name="password" value="manager" /> </driver-properties> <minimum-connection-count>1</minimum-connection-count> <maximum-connection-count>20</maximum-connection-count> <house-keeping-sleep-time>30</house-keeping-sleep-time> <maximum-active-time>600000</maximum-active-time> <house-keeping-test-sql>select 0</house-keeping-test-sql> <trace>false</trace> <statistics-log-level>ERROR</statistics-log-level> </proxool> </something-else-entirely>
c、MySql配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <something-else-entirely>
- <proxool>
- <alias>erp</alias>
- <driver-url>
- jdbc:mysql://192.168.0.1:3306/db_test?useUnicode=true&characterEncoding=UTF8
- </driver-url>
- <driver-class>com.mysql.jdbc.Driver</driver-class>
- <driver-properties>
- <property name="user" value="root" />
- <property name="password" value="root" />
- <property name="autoReconnect" value="true" />
- </driver-properties>
- <minimum-connection-count>5</minimum-connection-count>
- <maximum-connection-count>50</maximum-connection-count>
- <house-keeping-sleep-time>30</house-keeping-sleep-time>
- <house-keeping-test-sql>select 0</house-keeping-test-sql>
- <maximum-active-time>3600000</maximum-active-time>
- </proxool>
- </something-else-entirely>
<?xml version="1.0" encoding="UTF-8"?> <something-else-entirely> <proxool> <alias>erp</alias> <driver-url> jdbc:mysql://192.168.0.1:3306/db_test?useUnicode=true&characterEncoding=UTF8 </driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="root" /> <property name="password" value="root" /> <property name="autoReconnect" value="true" /> </driver-properties> <minimum-connection-count>5</minimum-connection-count> <maximum-connection-count>50</maximum-connection-count> <house-keeping-sleep-time>30</house-keeping-sleep-time> <house-keeping-test-sql>select 0</house-keeping-test-sql> <maximum-active-time>3600000</maximum-active-time> </proxool> </something-else-entirely>
d、Sybase配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <something-else-entirely>
- <proxool>
- <alias>db_test</alias>
- <driver-url>jdbc:sybase:Tds:192.168.0.1:5000/db_test?charset=cp936</driver-url><!--防止乱码,在sybase中编码通常采用cp850或者cp936-->
- <driver-class>com.sybase.jdbc3.jdbc.SybDriver</driver-class>
- <driver-properties>
- <property name="user" value="sa"/>
- <property name="password" value="123456"/>
- </driver-properties>
- <minimum-connection-count>10</minimum-connection-count>
- <maximum-connection-count>20</maximum-connection-count>
- <house-keeping-sleep-time>40000</house-keeping-sleep-time>
- <maximum-active-time>900000</maximum-active-time>
- <house-keeping-test-sql>select 0</house-keeping-test-sql>
- </proxool>
- </something-else-entirely>
<?xml version="1.0" encoding="UTF-8"?> <something-else-entirely> <proxool> <alias>db_test</alias> <driver-url>jdbc:sybase:Tds:192.168.0.1:5000/db_test?charset=cp936</driver-url><!--防止乱码,在sybase中编码通常采用cp850或者cp936--> <driver-class>com.sybase.jdbc3.jdbc.SybDriver</driver-class> <driver-properties> <property name="user" value="sa"/> <property name="password" value="123456"/> </driver-properties> <minimum-connection-count>10</minimum-connection-count> <maximum-connection-count>20</maximum-connection-count> <house-keeping-sleep-time>40000</house-keeping-sleep-time> <maximum-active-time>900000</maximum-active-time> <house-keeping-test-sql>select 0</house-keeping-test-sql> </proxool> </something-else-entirely>
3、具体使用
a、对于proxool使用在J2EE的web项目中,可以配置到web.xml文件中使用,具体配置使用步骤网上一搜一大堆,这里不细说。
b、proxool用在各种J2EE框架中,如Spring、Hibernate等,可以自己网上找,相关介绍很多,这里也不细讲。
c、自己加载解析使用(假如数据库配置文件名为dbconfig.xml,数据库连接配置的别名为db_test),首先写一个解析、管理配置文件和数据库连接的类如下:
- /**
- * 数据库连接管理器
- *
- * @author 蜘蛛
- *
- */
- public class DBConnector {
- /**默认数据库连接配置文件名称*/
- private static String dbConfig = "dbconfig.xml";
- public DBConnector() {
- }
- public DBConnector(String dbConfigMas) {
- dbConfig = dbConfigMas;
- }
- /**
- * 初始化
- *
- * @return
- */
- public boolean init() {
- try {
- JAXPConfigurator.configure(dbConfig, false);
- return true;
- } catch (ProxoolException ex) {
- ex.printStackTrace();
- }
- return false;
- }
- /**
- * 获取数据库连接
- *
- * @return
- */
- public static Connection getConn() {
- Connection temp = null;
- try {
- temp = DriverManager.getConnection("proxool.db_test");
- } catch (SQLException e) {
- e.printStackTrace();
- try {
- JAXPConfigurator.configure(dbConfig, false);
- temp = DriverManager.getConnection("proxool.mas");
- } catch (ProxoolException ex) {
- ex.printStackTrace();
- } catch (SQLException sqlE) {
- sqlE.printStackTrace();
- }
- }
- return temp;
- }
- /**
- * 关闭数据库连接,释放数据库连接
- *
- * @param rs
- * @param pstmt
- * @param con
- */
- public static void close(ResultSet rs, PreparedStatement pstmt, Connection con) {
- if(null != rs) {
- try {
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (null != pstmt) {
- try {
- pstmt.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if (null != con) {
- try {
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
/** * 数据库连接管理器 * * @author 蜘蛛 * */ public class DBConnector { /**默认数据库连接配置文件名称*/ private static String dbConfig = "dbconfig.xml"; public DBConnector() { } public DBConnector(String dbConfigMas) { dbConfig = dbConfigMas; } /** * 初始化 * * @return */ public boolean init() { try { JAXPConfigurator.configure(dbConfig, false); return true; } catch (ProxoolException ex) { ex.printStackTrace(); } return false; } /** * 获取数据库连接 * * @return */ public static Connection getConn() { Connection temp = null; try { temp = DriverManager.getConnection("proxool.db_test"); } catch (SQLException e) { e.printStackTrace(); try { JAXPConfigurator.configure(dbConfig, false); temp = DriverManager.getConnection("proxool.mas"); } catch (ProxoolException ex) { ex.printStackTrace(); } catch (SQLException sqlE) { sqlE.printStackTrace(); } } return temp; } /** * 关闭数据库连接,释放数据库连接 * * @param rs * @param pstmt * @param con */ public static void close(ResultSet rs, PreparedStatement pstmt, Connection con) { if(null != rs) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (null != pstmt) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (null != con) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
测试类:
- public class TestProxool{
- public static void main(String[]args {
- DBConnector dbCon = new DBConnector();
- if(!dbCon.init()){
- Debuger.log("数据库连接配置加载并初始化失败......");
- return ;
- }
- Debuger.log("数据库连接配置加载并初始化成功......");
- //只需在程序一开始启动时加载初始化即可,以后直接采用类DBConnector的静态方法getConn获取数据库连接,无需再执行加载初始化操作
- System.out.println("连接 = " + DBConnector.getConn());
- }
- }
public class TestProxool{ public static void main(String[]args { DBConnector dbCon = new DBConnector(); if(!dbCon.init()){ Debuger.log("数据库连接配置加载并初始化失败......"); return ; } Debuger.log("数据库连接配置加载并初始化成功......"); //只需在程序一开始启动时加载初始化即可,以后直接采用类DBConnector的静态方法getConn获取数据库连接,无需再执行加载初始化操作 System.out.println("连接 = " + DBConnector.getConn()); } }
发表评论
-
proxool中的maximum-active-time 转
2012-01-31 16:50 1175近日调试一个项目的时候, 总是在运行一段时间之后出现如下的警告 ... -
sqlserver 2008 视图 索引创建
2012-01-31 16:46 6043标题: Microsoft SQL Server Manage ... -
NT下如何彻底删除Oracle
2008-06-16 21:49 971NT下如何彻底删除Oracle? 软件环境: 1、Win ... -
Oracle exp/imp导出导入工具的使用(转)
2008-06-05 14:50 1207一. 导出工具 exp 1. 它是操作系统下一个可执行的 ... -
精妙SQL语句收集(转)
2008-06-05 14:43 929SQL语句先前写的时候, ...
相关推荐
proxool-0.9.1.jar proxool_cglib-0.9.1.jar 用于连接池的配置
proxool配置参数说明。 spring结合proxool的datasource配置方法 及proxool-0.9.1.jar proxool-cglib.jar
proxool-0.9.1.jar下载 hibernate3+ proxool-0.9.1配置说明 我刚配好,总结出来和大家分享下
proxool配置与测试.doc( proxool配置与测试.doc )
spring+proxool配置spring+proxool配置spring+proxool配置
proxool是个很好的开源连接池。...文件做了些小小的改动,现在proxool配置文件中用户和密码可以使用密文存储了,同时明文的也可以正常使用。解密功能部分做成了接口,可以用自己的 算法来实现,很方便。
proxool 连接mysql连接池用的东西 ,为大家下载。
项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用
proxool配置详解,配置是关键,理解深刻才能正确使用
spring proxool配置资料 spring proxool配置资料spring proxool配置资料
proxool 数据库连接池用户名、密码加密处理,文件里面包含可直接使用加密的jar以及相关使用说明。
解决mysql数据库8小时连接时限问题,方便配置Tomcat服务器,内有详细配置,易学习
the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> - - <proxool> - <!-- 连接池的别名 --> <alias>DBPool</alias> - <!...
proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解
Proxool 是java一个开源的连接池包,使用起来非常方便
proxool配置说明,轻松配置proxool连接池相关属性
Proxool-数据源配置详解,内附部分proxool-0.9.1.jar,proxool-cglib.jar 以及 Proxool配制详解.doc
Spring中使用proxool的配置 Spring中使用proxool的配置Spring中使用proxool的配置 Spring中使用proxool的配置
1、proxool官网,下载最新的proxool-0.9.1.jar 2、创建独立的proxool.xml文件,同时存在Web的WEB-INF目录下,根据自己的数据库类型,填写...5、整合Spring和proxool,配置应用上下文配置文件[applicationContext.xml]