少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          package com.abin.lee.collection.pool;

          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.SQLException;
          import java.util.ArrayList;
          import java.util.List;

          public class ConnectionPool {
           private List<Connection> pool;
           private static final String Url = "jdbc:oracle:thin:@localhost:1521:XE";
           private static final String USERNAME = "abing";
           private static final String PASSWORD = "abing";
           private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
           private int poolSize = 10;
           private static volatile ConnectionPool instance = null;

           private ConnectionPool() {
            init();
           }

           public void init() {
            pool = new ArrayList<Connection>(poolSize);
            addConnection();
           }

           public synchronized void release(Connection conn) {
            pool.add(conn);
           }

           public synchronized void closePool() {
            for (int i = 0; i < pool.size(); i++) {
             try {
              ((Connection) pool.get(i)).close();
             } catch (SQLException e) {
              e.printStackTrace();
             }
             pool.remove(i);
            }
           }

           public static ConnectionPool getInstance() {
            if (null == instance) {
             synchronized (ConnectionPool.class) {
              if (null == instance) {
               return new ConnectionPool();
              }
             }
            }
            return instance;
           }

           public synchronized Connection getConnection() {
            if (pool.size() > 0) {
             Connection conn = pool.get(0);
             if(conn!=null){
              System.out.println("Connection Pool Create Success");
             }
             pool.remove(conn);
             return conn;
            }else{
             return null;
            }
           }

           public void addConnection() {
            Connection conn = null;
            for (int i = 0; i < poolSize; i++) {
             try {
              Class.forName(DRIVER);
              conn = DriverManager.getConnection(Url, USERNAME, PASSWORD);
              pool.add(conn);
             } catch (Exception e) {
              e.printStackTrace();
             }

            }
           }

          }







          測試代碼:

          package com.abin.lee.collection.pool;

          import java.sql.Connection;
          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.util.ArrayList;
          import java.util.List;

          import com.abin.lee.collection.threadlocal.UserBean;

          public class TestConnectionPool {

           public static List<UserBean> findAll(){
            Connection conn=null;
            PreparedStatement ps=null;
            ResultSet rs=null;
            String sql="select * from userbean order by id desc";
            List<UserBean> list=new ArrayList<UserBean>();
            UserBean user=null;
            try {
             conn=ConnectionPool.getInstance().getConnection();
             ps=conn.prepareStatement(sql);
             rs=ps.executeQuery();
             while (rs.next()&&rs!=null) {
              user=new UserBean();
              user.setId(rs.getString("id"));
              user.setUsername(rs.getString("username"));
              user.setPassword(rs.getString("password"));
              list.add(user);
             }
            } catch (Exception e) {
             e.printStackTrace();
            }
            return list;
           }
           public static void main(String[] args) {
            List<UserBean> list=findAll();
            for(UserBean lst:list){
             System.out.println("id="+lst.getId());
             System.out.println("username="+lst.getUsername());
             System.out.println("id="+lst.getPassword());
            }
           }


          }

          posted on 2012-09-04 00:20 abin 閱讀(450) 評論(0)  編輯  收藏 所屬分類: JDBCP
          主站蜘蛛池模板: 鹤山市| 达孜县| 吴堡县| 桦南县| 九台市| 石首市| 通州区| 北安市| 德格县| 晴隆县| 濮阳市| 营山县| 车致| 河间市| 汉阴县| 文山县| 绥阳县| 永川市| 沙坪坝区| 犍为县| 东至县| 大名县| 巴中市| 东海县| 阿合奇县| 华蓥市| 五寨县| 桑日县| 延吉市| 隆安县| 民乐县| 晋宁县| 青铜峡市| 扎囊县| 庆阳市| 前郭尔| 武义县| 九龙县| 遂溪县| 赤壁市| 西充县|