少年阿賓

          那些青春的歲月

            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 閱讀(1549) 評論(0)  編輯  收藏 所屬分類: JDBCP
          主站蜘蛛池模板: 金山区| 兰溪市| 利川市| 莱阳市| 翼城县| 镇远县| 车险| 扶沟县| 双城市| 上虞市| 柞水县| 奇台县| 大同市| 哈尔滨市| 新化县| 肃南| 云龙县| 芒康县| 北流市| 苍溪县| 马龙县| 永定县| 赤城县| 永川市| 五大连池市| 博野县| 斗六市| 金溪县| 西贡区| 盘锦市| 九龙县| 宁夏| 乐业县| 托里县| 昆山市| 淅川县| 旬阳县| 曲麻莱县| 平定县| 临汾市| 河北省|