hyljava

          JDBC另一次封裝

          jdbc繼續(xù)改進(jìn)版
          /**
           * @author sign
           * @describe 改進(jìn)第三版
           *
           */
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.ResultSet;
          import java.sql.ResultSetMetaData;
          import java.sql.SQLException;
          import java.sql.Statement;
          import java.util.LinkedList;
          import java.util.Map;
          import java.util.TreeMap;

          public class JDBCUtil {
          Connection conn=null;
          Statement stmt=null;
          ResultSet rs=null;
          String url="jdbc:mysql://localhost:3306/theatermanagement";
          String user="root";
          String psw="root";

          static{
           try {
            Class.forName("com.mysql.jdbc.Driver");
            
           } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
           }
           
           }

            public Connection getConn(){
           
             try {
              conn=DriverManager.getConnection(url, user, psw);
           } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
           }
           return conn;
           }
           
            public int update(String sql){
             try {
            stmt=this.getConn().createStatement();
            return stmt.executeUpdate(sql);
           } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return -1;
           }finally{
            release();
            
           }

            }
             public LinkedList<Map<String,Object>> query(String sql){
              LinkedList<Map<String,Object>> list=new LinkedList<Map<String,Object>>();
              try {
             stmt=getConn().createStatement();
             rs=stmt.executeQuery(sql);
             ResultSetMetaData rsmd=rs.getMetaData();
             int count=rsmd.getColumnCount();
             
             while(rs.next()){
              Map<String,Object> map=new TreeMap<String,Object>();
              for (int i = 0; i < count; i++) {
               String key=rsmd.getColumnName(i+1);
               String keyy="";
               if(key.equals("")){// 聚合函數(shù)bug
                System.out.println("聚合函數(shù)bug"+key);
                keyy="count";
                Object value=rs.getObject(1);
                map.put(keyy, value);
               }else{
                Object value=rs.getObject(key);
                map.put(key, value);
               }
              }
              list.add(map);
             }
            } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }finally{
             release();
            }
            return list;
              
             }
             /**批量更新*/
             public void excuteBatch(String[] sqls){
              conn=this.getConn();
              
              /**設(shè)置提交模式為手動(dòng)提交*/
              try{
               conn.setAutoCommit(false);
               stmt=conn.createStatement();
               for(String sql:sqls){
                stmt.addBatch(sql);
               }
               stmt.executeBatch();
               /**手動(dòng)提交*/
               conn.commit();//事務(wù)
              }catch(SQLException e){
               e.printStackTrace();
              }finally{
               release();
              }
             }
             
             /**釋放資源*/
            public void release(){
             if(rs!=null){
              try {
              rs.close();
             } catch (SQLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
             }
             if(stmt!=null){
              try {
              stmt.close();
             } catch (SQLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
             }
             if(conn!=null){
              try {
              conn.close();
             } catch (SQLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
             
             }
            
            }
          }

          posted on 2012-10-15 13:09 何云隆 閱讀(1369) 評(píng)論(1)  編輯  收藏 所屬分類: java

          評(píng)論

          # re: JDBC另一次封裝 2012-10-18 13:57 garlic2046

          apache DButils 已經(jīng)封裝了類似的方法  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 竹山县| 彭阳县| 东平县| 大渡口区| 通州市| 静宁县| 辽源市| 慈溪市| 大田县| 宝山区| 浦东新区| 淮安市| 武山县| 乌恰县| 梁河县| 寿宁县| 泽普县| 淄博市| 保定市| 合山市| 大田县| 通道| 闸北区| 西充县| 彭阳县| 苏州市| 瑞金市| 九寨沟县| 永济市| 临沭县| 武宣县| 雅江县| 同仁县| 双江| 门头沟区| 宁晋县| 咸阳市| 泸溪县| 沙洋县| 镶黄旗| 民和|