67,515
社区成员
发帖
与我相关
我的任务
分享
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
import com.mchange.v2.c3p0.PooledDataSource;
import com.ufmsoft.factory.ResourceUtil;
/**
* @ClassName: DataSourceFactory
* @Description: 数据源工厂类
*/
public class DataSourceFactory {
private static final Logger logger = Logger.getLogger(DataSourceFactory.class);
/**
* 全局数据源
*/
private static ComboPooledDataSource ds = null;
static{
try {
ds = new ComboPooledDataSource(“orcl”);
} catch (Exception e) {
logger.error("初始实例化数据源出现错误,请确认配置文件存在和正确!");
e.printStackTrace();
}
}
/**
* @Title: getInstance
* @Description: 实例化数据源
*/
public static final void getInstance() {
try {
DataSources.destroy(ds); // 关闭datasource
ds=null;
ds = new ComboPooledDataSource(ResourceUtil.getDatasourceName());
} catch (Exception e) {
logger.error("实例化数据源出现错误,请确认配置文件存在和正确!");
e.printStackTrace();
}
}
/**
* @Title: closeDataSource
* @Description: 关闭数据源
* @throws Exception
*/
public static void closeDataSource() throws Exception{
ds.getClass().getMethod("close").invoke(ds);
}
/**
* @Title: getConnection
* @Description: 获取数据链接
* @return Connection
* @throws Exception
*/
public static Connection getConnection(){
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>!!!!!!!!");
try {
return ds.getConnection();
} catch (SQLException e) {
logger.error("获取数据链接失败>>>>>>>>>>>>>>>>>!");
e.printStackTrace();
return null;
}
}
/**
* @Title: closeConn
* @Description: 关闭数据链接
* @param con Connection
* @throws SQLException
*/
public static void closeConn(Connection con) throws SQLException{
con.close();
}
}
<c3p0-config>
<named-config name="orcl">
<property name="user">xxx</property>
<property name="password">xxx</property>
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="jdbcUrl">jdbc:oracle:thin:@192.168.1.10:1521:orcl</property>
<property name="acquireIncrement">50</property>
<property name="initialPoolSize">100</property>
<property name="minPoolSize">50</property>
<property name="maxPoolSize">1000</property>
<!-- intergalactoApp adopts a different approach to configuring statement caching -->
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">5</property>
<!-- he's important, but there's only one of him -->
<user-overrides user="master-of-the-universe">
<property name="acquireIncrement">1</property>
<property name="initialPoolSize">1</property>
<property name="minPoolSize">1</property>
<property name="maxPoolSize">5</property>
<property name="maxStatementsPerConnection">50</property>
</user-overrides>
</named-config>
</c3p0-config>
@Override
public void init() throws ServletException {
super.init();
DataSourceFactory.getConnection();
}
严重: StandardWrapper.Throwable
java.lang.ExceptionInInitializerError
at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:54)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:74)
at com.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:142)
at com.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:138)
at com.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:215)
at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:53)
at com.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34)
at com.ufmsoft.servlet.LoginServlet.init(LoginServlet.java:317)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.reflect.UndeclaredThrowableException
at $Proxy6.find(Unknown Source)
at com.mchange.v2.cfg.MConfig.readVmConfig(MConfig.java:75)
at com.mchange.v2.c3p0.cfg.C3P0Config.findLibraryMultiPropertiesConfig(C3P0Config.java:157)
at com.mchange.v2.c3p0.cfg.C3P0Config.<clinit>(C3P0Config.java:143)
... 35 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.mchange.v1.lang.Synchronizer$1.invoke(Synchronizer.java:58)
... 39 more
Caused by: java.lang.NoSuchMethodError: com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)V
at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)
at com.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153)
at com.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63)
... 44 more
<c3p0-config>
<named-config name="orcl">
<property name="user">888</property>
<property name="password">888</property>
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="jdbcUrl">jdbc:oracle:thin:@192.168.1.10:1521:orcl</property>
</named-config>
</c3p0-config>
删成这样,启动还是一样报错