【www.gdgbn.com--js教程】

  1. package pubcls;   
  2. import java.sql.*;   
  3. /**   * MySql 简单操作类 
  4.  * @author itblt   */ 
  5. public class Mysql  { 
  6.     public Connection liveCon = null;      public int dbWaitTime = 3600; 
  7.     public String dbLang = "";      public String errMessage = ""; 
  8.       private String linkUrl = ""; 
  9.     private String linkDb = "";      private String linkUser = ""; 
  10.     private String linkPwd = "";   
  11.     /**       * 设置默认参数 
  12.      */      private void setDefault() { 
  13.         this.linkUrl = "jdbc:mysql://localhost:3306/";          this.linkDb = "test"; 
  14.         this.linkUser = "root";          this.linkPwd = ""; 
  15.         this.dbLang = "utf8";      } 
  16.       /** 
  17.      * 用默认参数初始化       */ 
  18.     public Mysql() {          this.setDefault(); 
  19.     }   
  20.     /**       * 指定数据库及编码进行初始化 
  21.      * @parem String sdb       * 数据库名 
  22.      * @parem String dblang       * 编码(通常是utf8/gbk) 
  23.      *       */ 
  24.     public Mysql(String sdb, String dblang) {          this.setDefault(); 
  25.         this.linkDb = sdb;          this.dbLang = dblang; 
  26.     }   
  27.     /**       * 用完整的参数初始化 
  28.      * @parem String surl       * 连接网址(jdbc:mysql://IP:端口/): jdbc:mysql://localhost:3306/ 
  29.      * @parem String sdb       * 数据库名 
  30.      * @parem String suser       * 用户名 
  31.      * @parem String spwd       * 密码 
  32.      * @parem String dblang       * 数据库编码 
  33.      */      public Mysql(String surl, String sdb, String suser, String spwd, String dblang) { 
  34.         this.linkUrl = surl;          this.linkDb = sdb; 
  35.         this.linkUser = suser;          this.linkPwd = spwd; 
  36.         this.dbLang = dblang;      } 
  37.      /** 
  38.     * 获得链接      */ 
  39.     public Connection getConnection() throws SQLException,              java.lang.ClassNotFoundException 
  40.     {          this.liveCon = this.getConnection(this.linkUrl, this.linkDb, this.linkUser, this.linkPwd, this.dbLang); 
  41.         return this.liveCon;      } 
  42.       /** 
  43.      * 用指定参数获取链接       * @parem String surl 
  44.      * 连接网址(jdbc:mysql://IP:端口/): jdbc:mysql://localhost:3306/       * @parem String sdb 
  45.      * 数据库名       * @parem String suser 
  46.      * 用户名       * @parem String spwd 
  47.      * 密码       * @parem String dblang 
  48.      * 数据库编码       * @return Connection 
  49.      */      public Connection getConnection(String surl, String sdb, String suser, String spwd, String dblang) throws SQLException, 
  50.             java.lang.ClassNotFoundException      { 
  51.         this.linkUrl = surl;          this.linkDb = sdb; 
  52.         this.linkUser = suser;          this.linkPwd = spwd; 
  53.         this.dbLang = dblang;   
  54.         Class.forName("org.gjt.mm.mysql.Driver");          this.liveCon = DriverManager.getConnection(surl+sdb, suser, spwd); 
  55.         this.preQuery();          return this.liveCon; 
  56.     }       
  57.     /**       * mysql转义 
  58.      * @return String       */ 
  59.     public static String QuoteStr(String str)      { 
  60.         String[] searchs = {"", "n", "r", "26", "t", "\", """, """};          String[] replaces = {"\0", "\n", "\r", "\Z" , "\t", "\\", "\"", "\""}; 
  61.         for(int i=0; i < searchs.length; i++)          { 
  62.             str = str.replace(searchs[i], replaces[i]);          } 
  63.         return str;      }  
  64.         
  65.     /**       * 测试链接 
  66.      * @return boolean       */ 
  67.     private boolean testCon() throws SQLException      { 
  68.         if(this.liveCon==null || this.liveCon.isClosed() )          { 
  69.             try              { 
  70.                 this.getConnection();                  return true; 
  71.             }catch(ClassNotFoundException e)              { 
  72.                 return false;              } 
  73.             catch(SQLException e2)              { 
  74.                 this.errMessage = e2.getMessage();                  return false; 
  75.             }          } 
  76.         return true;      } 
  77.       /** 
  78.      * 执行写入语句       * @parem string query 
  79.      * SQL 写入类操作       * @return int 
  80.      */      public int execUpdate(String query) throws SQLException 
  81.     {          if(!this.testCon()) 
  82.         {              return -1; 
  83.         }          Statement sql_statement = this.liveCon.createStatement(); 
  84.         int result = sql_statement.executeUpdate(query);          sql_statement.close(); 
  85.         return result;      } 
  86.       /** 
  87.      * 执行insert语句并返回上次插入的主链id       * @parem string 
  88.      * sql SQL语句       * @return int 
  89.      */      public long execInsert(String query) throws SQLException 
  90.     {          if(!this.testCon()) 
  91.         {              return -1; 
  92.         }          Statement sql_statement = this.liveCon.createStatement(); 
  93.         long result = sql_statement.executeUpdate(query);          if(result>0) 
  94.         {              sql_statement = this.getStatement(" Select LAST_INSERT_ID(); "); 
  95.             ResultSet rs = sql_statement.getResultSet();              rs.next(); 
  96.             result = rs.getLong(0);          } 
  97.         sql_statement.close();          return result; 
  98.     }   
  99.     /**       * 获得一个记录集 
  100.      * @parem String query       * 查询用的SQL语句 
  101.      * @return ResultSet       */ 
  102.      public ResultSet getResultSet(String query) throws SQLException       { 
  103.         if(!this.testCon())          { 
  104.             return null;          } 
  105.         Statement sql_statement = this.getStatement(query);          ResultSet result = sql_statement.getResultSet(); 
  106.         return result;       } 
  107.        /** 
  108.      * 获得一个可用于更新操作的记录集       * @parem String query 
  109.      * 查询用的SQL语句       * @return ResultSet 
  110.      */       public ResultSet getResultSetUpdate(String query) throws SQLException 
  111.      {          if(!this.testCon()) 
  112.         {              return null; 
  113.         }          Statement sql_statement = this.liveCon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 
  114.         sql_statement.executeQuery(query);          ResultSet result = sql_statement.getResultSet(); 
  115.         return result;       } 
  116.       /** 
  117.      * 获得一个Statement       * @parem String query 
  118.      * 查询sql       * @return Statement 
  119.      */       public Statement getStatement(String query) throws SQLException 
  120.      {          if(!this.testCon()) 
  121.         {              return null; 
  122.         }          Statement sql_statement = this.liveCon.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); 
  123.         sql_statement.executeQuery(query);          return sql_statement; 
  124.      }   
  125.      /**       * 选择数据库 
  126.      */       public void selectDb(String dbname) throws SQLException 
  127.      {          this.testCon(); 
  128.         this.execUpdate(" use `"+ dbname +"`; ");       } 
  129.        /** 
  130.      * 预处理       */ 
  131.      private void preQuery() throws SQLException       { 
  132.         this.execUpdate(" SET NAMES ""+ this.dbLang +"", character_set_client=binary, sql_mode="", wait_timeout="+ this.dbWaitTime +", interactive_timeout="+ this.dbWaitTime +" ; ");       } 
  133.      /** 
  134.     * 关闭链接      */ 
  135.     public void close() throws SQLException      { 
  136.         if(this.liveCon != null && !this.liveCon.isClosed() )          { 
  137.             this.liveCon.close();          } 
  138.         this.liveCon = null;      } 
  139.      /** 
  140.     * 析放资源      */ 
  141.     public void finalize() {          try { 
  142.             this.close();          } catch(SQLException e) { 
  143.             e = null;          } 
  144.     }   
  145. }//end class 

本文来源:http://www.gdgbn.com/wangyezhizuo/23249/