少年阿賓

          那些青春的歲月

            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.LinkedList;
          import java.util.List;

          public class ConnectionManage {
           private static List<Connection> pool=new LinkedList<Connection>();;
           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 static int initCount = 5;
           private static int maxCount = 10;
           private static int currentCount = 5;
           private static volatile ConnectionManage instance = null;
           private ConnectionManage(){
            init();
           }
           public static ConnectionManage getInstance(){
            if(null == instance){
             synchronized (ConnectionManage.class) {
              if(null == instance){
               return new ConnectionManage();
              }
             }
            }
            return instance;
           }
           public void init(){
            addConnection();
           }
           public static Connection createConnection() throws ClassNotFoundException {
            Connection conn=null;
            try {
             Class.forName(DRIVER);
             conn=DriverManager.getConnection(Url, USERNAME, PASSWORD);
            } catch (SQLException e) {
             e.printStackTrace();
            }
            return conn;
           }
           public static void addConnection(){
            for(int i=0;i<initCount;i++){
             try {
              pool.add(createConnection());
             } catch (ClassNotFoundException e) {
              e.printStackTrace();
             }
            }
           }
           
           public static void release(Connection conn){
            pool.add(conn);
           }
           public static Connection getConnection() throws SQLException, ClassNotFoundException{
            synchronized (pool) {
             if(pool.size()>0){
              System.out.println("Current Connection size is:"+pool.size());
              return pool.get(0);
             }else if(currentCount<maxCount){
              Class.forName(DRIVER);
              Connection conn=createConnection();
              pool.add(conn);
              currentCount++;
              return conn;
             }else{
              throw new SQLException("Current Connection is Zero");
             }
            }
           }

          }





          測試代碼:

          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=ConnectionManage.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:18 abin 閱讀(1544) 評論(0)  編輯  收藏 所屬分類: JDBCP
          主站蜘蛛池模板: 开远市| 峡江县| 顺昌县| 县级市| 左贡县| 株洲市| 五原县| 遂溪县| 轮台县| 淮安市| 上饶县| 海南省| 环江| 双江| 西和县| 开原市| 伊金霍洛旗| 泸溪县| 华容县| 通山县| 长寿区| 樟树市| 榆社县| 宜兰市| 来宾市| 秭归县| 虹口区| 铜山县| 彝良县| 枞阳县| 神木县| 新乡市| 恭城| 扬州市| 长宁县| 广西| 肇州县| 万载县| 江北区| 建水县| 门源|