java链接数据库的工具类

类别:Java 点击:0 评论:0 推荐:

package spider.tools;

import java.sql.*;

public class DBTools {

  public static final int ORACLE = 0;
  public static final int SQLSERVER = 1;

  private static String oracleDriver =
      "oracle.jdbc.driver.OracleDriver";
  private static String sqlserverDriver =
      "com.microsoft.jdbc.sqlserver.SQLServerDriver";

  public Connection createConnection(String host, String dataBase, String user, String password,
                  int dbKind) {
    Connection result = null;

    String dbUrl = null;
    String dbDriver = null;

    if (dbKind == ORACLE) {
      dbUrl = createOracleUrl(host, dataBase);
      dbDriver = oracleDriver;
    }
    else if (dbKind == SQLSERVER) {
      dbUrl = createSqlserverUrl(host, dataBase);
      dbDriver = sqlserverDriver;
    }
    else {
      MyUtil.log(
          "initial database connection failure: " + "Unsupport data base!");
      return null;
    }

    try {
      Class.forName(dbDriver);
      result = DriverManager.getConnection(dbUrl, user, password);
    }
    catch (Exception e) {
      MyUtil.log(
          "initial database connection failure: " + e.toString());
      return null;
    }
    return result;
  }

  public String createOracleUrl(String host, String dataBase) {
    String oracleUrl = "jdbc:oracle:thin:@"
        + host + ":1521:"
        + dataBase;
    return oracleUrl;
  }

  public String createSqlserverUrl(String host, String dataBase) {
    String sqlServerUrl = "jdbc:microsoft:sqlserver://"
        + host + ":1433;DatabaseName="
        + dataBase;
    return sqlServerUrl;
  }
  public boolean isTableExist(Connection cnn, String table) {
    boolean result = false;
    String strSQL = "select * from sysobjects where id=object_id('" + table + "')";
    Statement st = null;
    ResultSet rs = null;
    try {
      st = cnn.createStatement();
      rs = st.executeQuery(strSQL);
      if(rs.next())
        result = true;
    }
    catch (SQLException ex) {
      MyUtil.log("Error happen when check table existance! table name: " + table);
    }
    finally {
      if (st != null) {
        try {
          st.close();
        }
        catch (SQLException ex1) {}
      }
      if (rs != null) {
        try {
          rs.close();
        }
        catch (SQLException ex1) {}
      }
    }
    return result;
  }

  public boolean clearTable(Connection cnn, String table) {
    if (!isTableExist(cnn, table))
      return false;
    boolean flag = true;
    PreparedStatement ps = null;
    try {
      ps = cnn.prepareStatement("delete from " + table);
      ps.executeUpdate();
    }
    catch (Exception e) {
      flag = false;
    }
    finally {
      if (ps != null) {
        try {
          ps.close();
        }
        catch (SQLException ex) {}
      }
    }
    return flag;
  }

}

本文地址:http://com.8s8s.com/it/it12692.htm