热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请问c3p0连接池怎么读Properties配置文件?

请问c3p0连接池怎么读properties配置文件?我怎么试都不行,总是:driverClass--->nullproperties文件如下:driverClasscom.micro
请问c3p0连接池怎么读properties配置文件?
我怎么试都不行,总是:driverClass--->null
properties文件如下:

driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbcUrl=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stock2
user=sa
password=ba123

不知道为什么就是读不了,向高手求救,希望给点代码提示一下,谢谢了!,我在官网那里搞了一上午都没弄出什么来。
现在只能在new 一个ComboPooledDataSource后,一个个设置,这样很不方便,每次改的时候都要从新编译!!

ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass( "com.microsoft.sqlserver.jdbc.SQLServerDriver" );
ds.setJdbcUrl( "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stock2" );
ds.setUser("sa");                                  
ds.setPassword("ba123"); 

13 个解决方案

#1


看javaAPI
java.util.Properties
Properties prop = new Properties();
prop.load(InputStream inStream); 
prop.getProperty(String key);

#2


ResourceBundle rb = ResourceBundle.getBundle("c3po",Locale.ENGLISH);//此文件在classes下
rg.getString("");

#3


Properties文件我是这样加载上去的啊

Properties p = new Properties();
      p.load(this.getClass().getResourceAsStream(c3p0Properties));
      ds = new ComboPooledDataSource();
      ds.setProperties(p);


#4


但还是提示:
2009-2-13 11:59:52 com.mchange.v2.log.MLog 
信息: MLog clients using java 1.4+ standard logging.
2009-2-13 11:59:53 com.mchange.v2.c3p0.C3P0Registry banner
信息: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
2009-2-13 11:59:53 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 2sa1hd7zugo04o1c4fygx|ef5502, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> null, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2sa1hd7zugo04o1c4fygx|ef5502, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> null, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver, user=******, password=******, jdbcUrl=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stock2}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
2009-2-13 12:00:22 com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask run
警告: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@8e32e7 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

properties是加载成功的,因为提示信息里有:
properties -> {driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver, user=******, password=******, jdbcUrl=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stock2},
我只是不知道为什么,那个driverClass -> null,和jdbcUrl -> null,?怎么还是null啊

#5


setProperties可能要求你的键名必须要是它要求的吧,所以有的找不到
不过不知道他具体要求的是什么。。。。。。

=====================================================================
你还使用
ds.setDriverClass( "com.microsoft.sqlserver.jdbc.SQLServerDriver" );
    ds.setJdbcUrl( "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stock2" );
    ds.setUser("sa");                                  
    ds.setPassword("ba123"); 
这种方式,只不过你面的字符串是propertie.getProperty("XXXX");也可以,没啥区别,反正只需要改properties文件
=================================================================

#6


我这样的话,
ComboPooledDataSource ds = new ComboPooledDataSource();
    ds.setDriverClass( "com.microsoft.sqlserver.jdbc.SQLServerDriver" );
    ds.setJdbcUrl( "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stock2" );
    ds.setUser("sa");                                  
    ds.setPassword("ba123"); 

每次都用重新编译不方便啊,我不知道c3p0要怎么把properties加载上去才行,
上面的这样设置了ds.setProperties(p);都不行!!

#7


不会,帮忙顶起来

#8


有没有高手知道啊,帮帮忙啊!

#9


Properties p = new Properties();
。。。//加载Properties文件

ds.setDriverClass(p.getProperty("driver.class")); 
    ds.setJdbcUrl(p.getProperty("jdbc.url")); 
    ds.setUser(p.getProperty("user"));                                  
    ds.setPassword(p.getProperty("password")); 
这种形式不可以么?
这样以后又变更个修改Properties文件就可以了

#10


不告诉你

#11


引用 9 楼 fulianglove 的回复:
Properties p = new Properties(); 
。。。//加载Properties文件 

ds.setDriverClass(p.getProperty("driver.class")); 
    ds.setJdbcUrl(p.getProperty("jdbc.url")); 
    ds.setUser(p.getProperty("user"));                                  
    ds.setPassword(p.getProperty("password")); 
这种形式不可以么? 
这样以后又变更个修改Properties文件就可以了

呵呵!非常感谢fulianglove。我怎么就想不到呢,不会转弯啊

#12


java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at 

看你错误提示,应该是没有加入oracle的驱动jar包吧!!

#13


写一个properties文件,在Spring配置文件中读取.properties文件的内容

推荐阅读
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
author-avatar
墨镜元龙高卧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有