ใช้งาน c3p0:JDBC DataSources/Resource Pools

c3p0 เป็น library สำหรับจัดการ jdbc drivers และทำ datasource ซึ่ง จะมี Connection, Statement Pooling ให้ใช้ครับ
Pool Datasource เปรียบเทียบได้กับ แหล่งเก็บของ connection ทำการ connect database เอาไว้ให้เราก่อนและเก็บเอาไว้ใน pool
พอเราจะใช้ connection ตัว datasource ก็จะไปหยิบ connection ที่อยู่ใน pool มาให้เราใช้ได้ทันทีโดยไม่ต้องมีการ connection ใหม่
ซึ่งใช้เวลานาน

import com.mchange.v2.c3p0.DataSources;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
public class Main {
     public static void main(String args[]){
            Class.forName("oracle.jdbc.driver.OracleDriver");
            DataSource unpooled = DataSources.unpooledDataSource("jdbc:oracle:thin:@//ipaddress:port/sid", "username", "password");
            //มีรายละเอียดในการ config datasource pool ด้วยนะครับดูได้ในเวปของ c3p0
            DataSource pooled = DataSources.pooledDataSource(unpooled);

            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            try {
                  conn = pooled.getConnection();
                  pstmt = conn.prepareStatement("select sysdate from dual");
                  rs = pstmt.executeQuery();
                  System.out.println("query success");
                  while (rs.next()) {
                       System.out.println(rs.getString(1));
                  }
            } catch(Exception ex) {
                ex.printStackTrace();
            } finally {
                rs.close();
                pstmt.close();
                conn.close();
            }
            //  ใช้เสร็จแล้วอย่าลืม destroy datasource ครับ destroy ครั้งเดียวตอนจบโปรแกรมก็พอครับ
            //ไม่จำเป็นจะต้อง destroy ทุกครั้งที่มีการใช้ connection (เค้าออกแบบมาแบบนั้น)
            DataSources.destroy(pooled);
     }
}

About WK

Kajook is a Senior Software Engineer. Job is Design & Develop in Java EE environment on Glassfish. I'm Interested in Agile software development ,iOS and Android.
This entry was posted in knowledge and tagged , , , , . Bookmark the permalink.

One Response to ใช้งาน c3p0:JDBC DataSources/Resource Pools

  1. Pingback: c3p0 connection pool | Just another day

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s