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