首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

JDBC连接池c3p0的有关问题

2012-08-17 
JDBC连接池c3p0的问题测试CP30连接池,怎么报这样的异常?import java.beans.PropertyVetoExceptionimport

JDBC连接池c3p0的问题
测试CP30连接池,怎么报这样的异常? 



import java.beans.PropertyVetoException; 
import java.sql.Connection; 
import java.sql.SQLException; 
import com.mchange.v2.c3p0.ComboPooledDataSource; 

public final class ConnectionManager { 

  private static ConnectionManager instance; 
  private static ComboPooledDataSource dataSource; 

  private ConnectionManager() throws SQLException, PropertyVetoException { 
  dataSource = new ComboPooledDataSource(); 

  dataSource.setUser("root"); 
  dataSource.setPassword("root"); 
  dataSource.setJdbcUrl("jdbc:mysql://loachost:3306/test"); 
  dataSource.setDriverClass("com.mysql.jdbc.Driver"); 
  dataSource.setInitialPoolSize(5); 
  dataSource.setMinPoolSize(1); 
  dataSource.setMaxPoolSize(10); 
  dataSource.setMaxStatements(50); 
  dataSource.setMaxIdleTime(60); 
  } 

  public static final ConnectionManager getInstance() { 
  if (instance == null) { 
  try { 
  instance = new ConnectionManager(); 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  return instance; 
  } 

  public synchronized final Connection getConnection() { 
  Connection conn = null; 
  try { 
  conn = dataSource.getConnection(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
  return conn; 
  } 



import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 


public class ConnectionDemo { 

  public static void main(String[] args) { 
  System.out.println("使用连接池................................"); 
  for (int i = 0; i < 20; i++) { 
  long beginTime = System.currentTimeMillis(); 
  Connection conn = ConnectionManager.getInstance().getConnection(); 
  try { 
  PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM t_fmscpy200"); 
  ResultSet rs = pstmt.executeQuery(); 
  while (rs.next()) { 
  } 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } finally { 
  try { 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
  } 

  long endTime = System.currentTimeMillis(); 
  System.out.println("第" + (i + 1) + "次执行花费时间为:" + (endTime - beginTime)); 
  } 

  } 



2010-7-4 21:12:52 com.mchange.v2.log.MLog <clinit> 
信息: MLog clients using java 1.4+ standard logging. 
2010-7-4 21:12:53 com.mchange.v2.c3p0.C3P0Registry banner 
信息: Initializing c3p0-0.9.2-pre1 [built 27-May-2010 01:00:49 -0400; debug? true; trace: 10] 


Exception in thread "main" java.lang.NoSuchMethodError: com.mchange.v2.async.ThreadPoolAsynchronousRunner.<init>(IZLjava/util/Timer;Ljava/lang/String;)V 
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.createTaskRunner(C3P0PooledConnectionPoolManager.java:132) 
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.poolsInit(C3P0PooledConnectionPoolManager.java:143) 
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPoolManager.<init>(C3P0PooledConnectionPoolManager.java:262) 
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getPoolManager(AbstractPoolBackedDataSource.java:508) 
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128) 
at ConnectionManager.getConnection(ConnectionManager.java:39) 
at ConnectionDemo.main(ConnectionDemo.java:14) 

结果报这样的异常,jar用到的是cp300.9.1.2.jar 


[解决办法]
重新打包,或是在MANIFEST.MF这个文件里指定Main-Class,应该可以解决你的问题.

热点排行