获得数据源的方式很多,可以直接使用JDBC的方式,可以通过JNDI的方式,不知道哪种方式比较好,估计是使用JNDI的方式比较好。配置JDNI在我上一篇已经写了,JDNI也是获得一个数据源,那么接下来就有池子来管理这些链接。贴上代码,这个代码写的很垃圾,没有面向对象,也没有对里面的东西做很好的处理,只是一个测试的例子讲究看看吧。
package com.yangtao.util;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
public class C3p0Test {
public static void main(String[] args) {
ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds.setDriverClass( "com.mysql.jdbc.Driver" );
} catch (PropertyVetoException e1) {
e1.printStackTrace();
} //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:mysql://192.168.5.155:3306/safemedia" );
cpds.setUser("root");
cpds.setPassword("aosatech");
// the settings below are optional -- c3p0 can work with defaults
cpds.setMinPoolSize(5);
cpds.setAcquireIncrement(5);
cpds.setMaxPoolSize(20);
cpds.setMaxStatements( 180 );
try {
Connection connection = cpds.getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from task");
while(resultSet.next()){
System.out.println(resultSet.getString("filename"));
}
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}finally
{
try {
DataSources.destroy(cpds);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}