获得数据源的方式很多,可以直接使用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();
            }
        }
    }
    
}