jfy3d(劍事)BLOG

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            37 隨筆 :: 0 文章 :: 363 評(píng)論 :: 0 Trackbacks

          為了提高寫程序效率,做了一個(gè)簡(jiǎn)單的封裝JDBC類

          SqLModify.java

          使用方法

          SqLModify.modify("insert into usertable(username,password)values('lucy','123456')"); 
          這個(gè)是靜態(tài)方法的調(diào)用 可以執(zhí)行insert   update  和直接調(diào)用jdbc方式比少寫了很多的代碼

          為了防止特殊字符 和 SQL注入可以用另外的調(diào)用方式
          SqLModify sqlcom = new SqlModify(true);  //true表示建立連接
          sqlcom.setSql("insert into usertable(username,password)values(?,?)"); 
          sqlcom.setString(1,"lucy");
          sqlcom.setString(2,"123456");
          sqlcom.exesqlandClose();

          如果是插入多條記錄可以使用循環(huán)

          SqLModify sqlcom = new SqlModify(true);  //true表示建立連接
          sqlcom.setSql("insert into usertable(username,password)values(?,?)"); 
          for(int i=0;i<30;i++)
          {
             
             sqlcom.setString(1,"lucy");
             sqlcom.setString(2,"123456");
             sqlcom.exesql();
          }
          sqlcom.closeall();




          SqlModify.java
          代碼

          import conn.DBConnManager;

          import java.sql.Connection;
          import java.sql.PreparedStatement;

          public class SqlModify
          {
           private String SQL;
           static SqlModify sqlcom = null;
           private DBConnManager conn = null;
           private Connection con = null;
           private PreparedStatement stmt = null;
           
           public SqlModify()
           {
            
           }
           public SqlModify(boolean connect)
           {
            if(connect)
             connect();
           }
           public static int modify(String sqlStr)
           {
            if(sqlcom==null)
              sqlcom = new SqlModify();
            return sqlcom.exec(sqlStr);
           }
           public PreparedStatement getStmt()
           {
            return stmt;
           }
           public void connect(String sqlStr)
           {
            try{
             connect();
             stmt = con.prepareStatement(sqlStr);
            }catch(Exception e){
             e.printStackTrace();
            }
           }
           public void connect()
           {
            try{
             conn = DBConnManager.getInstance();
             con  = conn.getConnection("mssql");
            }catch(Exception e){
             
            }
           }
           public int exesqlandClose()
           {
            int result = exesql();
            closeall();
            return result;
           }
           public int exesql()
           {
            try{
             return stmt.executeUpdate();
            }catch(Exception e){
             e.printStackTrace();
             return -1;
            }
           }
           public void setSql(String sql)
           {
            try{
             stmt = con.prepareStatement(sql);
            }catch(Exception e){
             e.printStackTrace();
            }finally{
             
            }
           }
           public int exec(String sqlStr)
           {
            int flag=-2;

            try{
             connect(sqlStr); 
             int value=stmt.executeUpdate();
             flag=value;
            }catch(java.lang.Exception ex){
             ex.printStackTrace();
            }finally{
             closeall();
            }
            return flag;
           }
           public void closeall()
           {
            try{
             if(stmt!=null)
             {
              stmt.close();
             }
             if(conn!=null)
             {
              conn.releaseConnection("mssql",con);
             }
             
            }catch(Exception e){
             e.printStackTrace();
            }
           }
           public void setString(int col,String value)
           {
            try{
             stmt.setString(col,value);
            }catch(java.lang.Exception ex){
             ex.printStackTrace();
            }  
           }
           public void setInt(int col,int value)
           {

            try{
             stmt.setInt(col,value);
            }catch(java.lang.Exception ex){
             ex.printStackTrace();
            }
             
           }
           public void setLong(int col,long value)
           {
            try{
             stmt.setLong(col,value);
            }catch(java.lang.Exception ex){
             ex.printStackTrace();
            } 
           }
           public void setFloat(int col,float value)
           {
            try{
             stmt.setFloat(col,value);
            }catch(java.lang.Exception ex){
             ex.printStackTrace();
            } 
           }
          }

          posted on 2005-09-11 20:15 劍事 閱讀(4416) 評(píng)論(3)  編輯  收藏 所屬分類: 小程序

          評(píng)論

          # re: JDBC簡(jiǎn)單封裝,節(jié)省大量代碼 2005-09-12 11:06 xmlspy
          可以看看spring的jdbc模塊,會(huì)更方便  回復(fù)  更多評(píng)論
            

          # re: JDBC簡(jiǎn)單封裝,節(jié)省大量代碼 2005-09-12 15:15 Xuefeng
          你的靜態(tài)方法有沒(méi)有考慮多線程問(wèn)題?  回復(fù)  更多評(píng)論
            

          # re: JDBC簡(jiǎn)單封裝,節(jié)省大量代碼 2005-09-12 18:58 劍事
          靜態(tài)方法主要是同步應(yīng)用的
          如記數(shù)等 防止并發(fā)

            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 赞皇县| 怀远县| 突泉县| 吉木萨尔县| 万宁市| 图们市| 阳高县| 武鸣县| 赤峰市| 仲巴县| 文昌市| 习水县| 乌鲁木齐市| 遂昌县| 沂南县| 泰安市| 甘洛县| 昭平县| 天祝| 黄浦区| 武强县| 肥乡县| 延庆县| 伊宁市| 龙门县| 郎溪县| 荆州市| 根河市| 柳江县| 汤原县| 保定市| 阿克陶县| 惠州市| 长武县| 上犹县| 静宁县| 浙江省| 抚州市| 浮梁县| 长顺县| 比如县|