栏目导航
热点推荐
- 三十条有用的 Java 编程规则
- Java制作水印图片源码
- Java常见异常及可能的导致原因
- Java中的修饰词使用方法总结
- J2EE系统异常的处理准则
- Java中的异常、断言、日志解析(
- Java面试技巧:Java面试题集锦(
- 面向Java开发人员的Scala指南:
- Java程序员:一刻钟精通正则表达
- 网友经验分享:学好java开发的关
- 专家解答:创建表格与数据库进行
- Java远程访问Domino数据库
阅览排行
配置Spring的Proxool数据源
www.jz123.cn 2009-10-20 来源: IT专家网 责任编辑(袁袁) 我要投递新闻
下面是在上文例子的基础上所改写的,环境如下:
Spring 2.0
proxool-0.9.1
JDK1.5
1、写Spring的配置文件
syndsconfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="driverUrl">
<value>jdbc:oracle:thin:@192.168.104.192:1521:tim</value>
</property>
<property name="user" value="tim"/>
<property name="password" value="tim_8968888"/>
<property name="alias" value="Pool_dbname"/>
<property name="maximumActiveTime" value="300000"/>
<property name="prototypeCount" value="0"/>
<property name="maximumConnectionCount" value="50"/>
<property name="minimumConnectionCount" value="2"/>
<property name="simultaneousBuildThrottle" value="50"/>
<property name="houseKeepingTestSql" value="select CURRENT_DATE"/>
</bean>
</beans>
2、写Spring的上下文环境管理工具
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Created by IntelliJ IDEA. * * @author leizhimin 2009-10-15 10:21:38 */ public class ApplicationContextUtil { private static ApplicationContext applicationContext; static { if (applicationContext == null) applicationContext = rebuildApplicationContext(); } /** * 重新构建Spring应用上下文环境 * * @return ApplicationContext */ public static ApplicationContext rebuildApplicationContext() { return new ClassPathXmlApplicationContext("/syndsconfig.xml"); } /** * 获取Spring应用上下文环境 * * @return */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 简单的上下文环境测试 */ public static void main(String[] args) { rebuildApplicationContext(); if (applicationContext == null) { System.out.println("ApplicationContext is null"); } else { System.out.println("ApplicationContext is not null!"); } } } |
3、写测试类
import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; /** * Created by IntelliJ IDEA. * * @author leizhimin 2009-10-10 17:59:47 */ public class TestProxool { public static String dburl = "jdbc:oracle:thin:@192.168.104.192:1521:tim"; public static String user = "tim"; public static String password = "tim_8968888"; /** * JDBC方式测试 * * @throws Exception */ public static void test1() throws Exception { String testsql = "select * from village t where lastid = 346"; //1:注册驱动类 Class.forName("oracle.jdbc.driver.OracleDriver"); //2:创建数据库连接 // Connection conn = DriverManager.getConnection(dburl, user, password); DataSource ds = (DataSource) ApplicationContextUtil.getApplicationContext().getBean("dataSource"); Connection conn = ds.getConnection(); //3:创建执行SQL的对象 Statement stmt = conn.createStatement(); //4:执行SQL,并获取返回结果 ResultSet rs = stmt.executeQuery(testsql); //5:处理返回结果,此处打印查询结果 while (rs.next()) { System.out.print(rs.getLong("id") + "t"); System.out.print(rs.getString("name") + "t"); System.out.println(); } //6:关闭数据库连接 conn.close(); } public static void main(String[] args) throws Exception { test1(); } } |
控制台输出如下:
2009-10-15 12:37:03 - INFO org.springframework.core.CollectionFactory - JDK 1.4+ collections available 2009-10-15 12:37:03 - INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [syndsconfig.xml] 2009-10-15 12:37:04 - INFO org.springframework.context.support.ClassPathXmlApplicationContext - Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=9737354]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource]; root of BeanFactory hierarchy 2009-10-15 12:37:04 - INFO org.springframework.context.support.ClassPathXmlApplicationContext - 1 beans defined in application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=9737354] 2009-10-15 12:37:04 - INFO org.springframework.context.support.ClassPathXmlApplicationContext - Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@10655dd] 2009-10-15 12:37:04 - INFO org.springframework.context.support.ClassPathXmlApplicationContext - Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@c8f6f8] 2009-10-15 12:37:04 - INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource]; root of BeanFactory hierarchy] 5411 张一村 5412 张二村 5413 张三村 5414 张四村 5415 南原村 5416 辛庄村 5417 凡村 5418 西阳村 5419 人马村 5420 前关村 5421 后关村 5422 赵村 5423 水淆村 5424 沟东村 5425 陈村 5426 窑店村 5427 坡头村 20588 大安头 20589 涧里村 20590 人马寨 20591 白草村 20592 窑院村 20593 寺下村 20594 反上村 33651 小安头 33652 五花岭 33653 东沟 33654 西沟 33655 南沟 33656 王村 33657 营前 33659 东阳 33661 太阳 33663 丰阳 33665 宜村 33667 窑头 32225 石原村 32226 庙上村 32227 庙洼 38739 丁管营 38841 涧西 2009-10-15 12:37:05 - INFO org.logicalcobwebs.proxool.Pool_dbname - Shutting down 'Pool_dbname' pool immediately [Shutdown Hook] 2009-10-15 12:37:05 - INFO org.logicalcobwebs.proxool.PrototyperController - Stopping Prototyper thread 2009-10-15 12:37:05 - INFO org.logicalcobwebs.proxool.HouseKeeperController - Stopping HouseKeeper thread Process finished with exit code 0 |
info日志是log4j输出的。
当然,可以在Spring中配置多个DataSource,都没问题的。
上一篇:Java 设计模式之 观察者模式(Observer) 下一篇:基础编程:Java快速排序实例详解