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;
}
}