java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.1.136:3306/shop, username = root. Terminating connection pool. Original Exception: ------
java.sql.SQLException: No suitable driver found for jdbc:mysql://192.168.1.136:3306/shop
at java.sql.DriverManager.getConnection(DriverManager.java:604)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:242)
at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:289)
at Netpet.Web.Data.pool.Pool2.configure(Pool2.java:118)
at Netpet.Web.Data.pool.Pool2.getConnection(Pool2.java:25)
at Netpet.Web.Data.ConnectionPool.GetConnection1(ConnectionPool.java:92)
at Netpet.Web.Data.ConnectionPool.GetConnection(ConnectionPool.java:72)
at Netpet.Web.Data.ConnectionPool.GetConnection(ConnectionPool.java:56)
at Netpet.Web.Data.Netpet.BaseConfig.Config(BaseConfig.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at Netpet.Web.Config.InitConfig.InitAllConfigTrue(InitConfig.java:162)
at Netpet.Web.Config.InitConfig.InitAllConfig(InitConfig.java:97)
at Netpet.Web.InitServer.init(InitServer.java:40)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
------
at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:296)
at Netpet.Web.Data.pool.Pool2.configure(Pool2.java:118)
at Netpet.Web.Data.pool.Pool2.getConnection(Pool2.java:25)
at Netpet.Web.Data.ConnectionPool.GetConnection1(ConnectionPool.java:92)
at Netpet.Web.Data.ConnectionPool.GetConnection(ConnectionPool.java:72)
at Netpet.Web.Data.ConnectionPool.GetConnection(ConnectionPool.java:56)
at Netpet.Web.Data.Netpet.BaseConfig.Config(BaseConfig.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at Netpet.Web.Config.InitConfig.InitAllConfigTrue(InitConfig.java:162)
at Netpet.Web.Config.InitConfig.InitAllConfig(InitConfig.java:97)
at Netpet.Web.InitServer.init(InitServer.java:40)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://192.168.1.136:3306/shop
at java.sql.DriverManager.getConnection(DriverManager.java:604)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:242)
at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:289)
... 31 more
使用bonecp连接池总是报这个错误,经过半天的测试终于找到了原因,
初始化数据库连接时没有写:Class.forName("com.mysql.jdbc.Driver");
代码如下:
public synchronized static void configure(Properties props) throws SQLException{
if(pools != null && pools.size() > 0){return;}
try {
// load the database driver (make sure this is in your classpath!)
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
return;
}
// setup the connection pool
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:mysql://"+GlobalConfig.mysqlDbIp+":3306/shop"); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb
config.setUsername(GlobalConfig.mysqlDbUserName);
config.setPassword(GlobalConfig.mysqlDbPwd);
//设置每60秒检查数据库中的空闲连接数
config.setIdleConnectionTestPeriod(60);
//设置连接空闲时间
config.setIdleMaxAge(240);
//设置每个分区中的最大连接数 30
config.setMaxConnectionsPerPartition(5);
//设置每个分区中的最小连接数 10
config.setMinConnectionsPerPartition(5);
//当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数
config.setAcquireIncrement(5);
//连接释放处理
config.setReleaseHelperThreads(3);
//设置分区 分区数为3
config.setPartitionCount(3);
//设置配置参数
BoneCP connectionPool = new BoneCP(config); // setup the connection pool
pools.put(DatabaseConfig.DEFAULT_NAME, connectionPool);
BoneCPConfig config2 = new BoneCPConfig();
config2.setJdbcUrl("jdbc:mysql://"+GlobalConfig.mysqlDbIp+":3306/account"); // jdbc url specific to your database, eg jdbc:mysql://127.0.0.1/yourdb
config2.setUsername(GlobalConfig.mysqlDbUserName);
config2.setPassword(GlobalConfig.mysqlDbPwd);
//设置每60秒检查数据库中的空闲连接数
config2.setIdleConnectionTestPeriod(60);
//设置连接空闲时间
config2.setIdleMaxAge(240);
//设置每个分区中的最大连接数 30
config2.setMaxConnectionsPerPartition(5);
//设置每个分区中的最小连接数 10
config2.setMinConnectionsPerPartition(5);
//当连接池中的连接耗尽的时候 BoneCP一次同时获取的连接数
config2.setAcquireIncrement(5);
//连接释放处理
config2.setReleaseHelperThreads(3);
//设置分区 分区数为3
config2.setPartitionCount(1);
//设置配置参数
BoneCP connectionPool2 = new BoneCP(config2); // setup the connection pool
pools.put(DatabaseConfig.PAY_NAME, connectionPool2);
}
分享到:
相关推荐
在本实例中,我们将会深入理解如何在Java应用程序中利用BoneCP作为JDBC连接池来管理数据库连接,以及如何针对Oracle数据库进行配置。 首先,让我们了解什么是JDBC连接池。JDBC连接池是一种数据库连接管理机制,它...
**配置 BoneCP:** 在项目中使用 BoneCP 需要添加对应的 JAR 包,包括 BoneCP.jar、log4j.jar 和其他依赖库。在 Java 代码中,你需要配置 BoneCP 的连接池参数,例如: ```java Properties props = new Properties...
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test"); ds.setUsername("root"); ds.setPassword("password"); ``` 4. 创建和关闭连接:工具类中提供方法供其他模块获取和释放数据库连接。使用`getConnection()`...
骨CP(BoneCP)是一款高性能的Java数据库连接池(JDBC Connection Pool)库,它以其高效性能和轻量级的设计而受到开发者的欢迎。在某些测试中,BoneCP被证明比C3P0快约25倍,这使得它成为在高并发场景下优化数据库...
<JdbcDriver class="com.mysql.jdbc.Driver"/> <jdbcUrl>jdbc:mysql://localhost:3306/test</jdbcUrl> <username>root <password>password <!-- 连接池配置 --> <minConnectionsPerPartition>5 ...
我们通常使用`<context:property-placeholder>`标签加载外部的配置文件(如`bonecp.properties`),然后通过`<bean>`标签定义数据源,将配置文件中的属性值注入到对应的Bean属性中,如`driverClass`, `jdbcUrl`, `...
BoneCP 是一个高效、轻量级的 Java 数据库连接池(JDBC Connection Pool)实现。它在性能上优于其他同类连接池,如 C3P0 和 DBCP,尤其适用于高并发场景。在深入理解 BoneCP 之前,我们先来了解一下数据库连接池的...
《BoneCP:一款高效数据库连接池的深度解析》 BoneCP是一款开源的、高性能的Java数据库连接池。在深入理解 BoneCP之前,我们先要明白数据库连接池的基本概念。数据库连接池是在应用服务器启动时创建的,它可以提供...
**JDBC连接池BoneCP_Demo详解** 在Java开发中,数据库操作是不可或缺的一部分,而JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。然而,直接使用JDBC进行数据库连接管理可能会导致资源浪费,...
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.show_sql">true ``` 同时,还需要在`bonecp.properties`中设置Hibernate相关的属性,例如: ``...
3. **其他可能的依赖**:虽然在描述中没有明确指出,但 BoneCP 可能还需要其他的库来支持其功能,如JDBC驱动(对应于特定的数据库,如MySQL、Oracle等),这些驱动通常需要单独添加到项目中,以确保 BoneCP 能够正确...
bonecp.driverClass=org.gjt.mm.mysql.Driver bonecp.jdbcUrl=jdbc:mysql://localhost/manytomany?useUnicode=true&characterEncoding=UTF-8 bonecp.username=root bonecp.password=2008 #分区数量 ...
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb"); config.setUsername("root"); config.setPassword("password"); config.setMinConnectionsPerPartition(5); config.setMaxConnectionsPerPartition(10...
- `driverClass`: 数据库驱动类,这里是MySQL的JDBC驱动。 - `jdbcUrl`: 连接数据库的URL。 - `username` 和 `password`: 数据库访问的用户名和密码。 - `idleConnectionTestPeriod`: 定期检查空闲连接的时间间隔...
1. **driverClassName**: 指定JDBC驱动类名,例如`com.mysql.jdbc.Driver`。 2. **url**: 数据库连接URL,如`jdbc:mysql://localhost:3306/mydb`。 3. **username**: 数据库用户名。 4. **password**: 数据库密码。 ...
BoneCP是一款高效的、开源的Java数据库连接池(JDBC Connection Pool)框架,它在性能上优于其他同类连接池,如C3P0和DBCP。本资料提供了使用BoneCP连接Oracle数据库的实例以及所需的jar包,帮助开发者快速理解和...
<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop> <prop key="hibernate.connection.url">jdbc:mysql://127.0.0.1/yourdb</prop> <prop key="hibernate.connection.username">root...
<property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useSSL=false"/> ...
1. `driverClass`: 指定数据库驱动类,例如“oracle.jdbc.driver.OracleDriver”。 2. `jdbcUrl`: 数据库连接字符串,用于指定数据库的位置。 3. `username` 和 `password`: 登录数据库的用户名和密码。 4. `...
java 向mysql 插入记录,用bonecp 多线程并行插入记录 用acer 3750g测试结果500-600条/秒/每张表,台式机更快一些约800条/秒/每张表,分析用的SQL语句 select max(num),min(num),avg(num) from ( select count(*) num...