/**
* Create Date: 2007-1-7 上午08:40:13
* Create Author: Vniceboy
* Email: [email protected]
* Company: Hsd zipper
*/
package DB;
import java.sql.*;
/**
* <p>
* 该类用于数据库的连接和SQL语句的执行
* </p>
*
* @author vniceboy
* @version 1.0
* @inheritDoc DB.java
* @see java.sql.Connection
* @see java.sql.ResultSet
* @see java.sql.Statement
*/
public class DB {
// 定义数据库连接字符串,jdbc.odbc桥
private final String sJdbcOdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
// 定义数据库连接字符串, SQL连接
private final String sSqlServerDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private Connection conn = null;
private Statement stmt = null;
public ResultSet rs = null;
/**
* <p>
* 连接数据库: ODBC连接 SQLSERVER连接
* </p>
*
* @throws Exception
*/
// 数据库连接
public boolean getConnection(final String sOdbcServer) {
try {
// 加载ODBC驱动器
Class.forName(sJdbcOdbcDriver);
// 建立连接
conn = DriverManager.getConnection("jdbc:odbc:" + sOdbcServer);
// 关闭自动提交
conn.setAutoCommit(false);
// 设定事务级别
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
// 创建一个JDBC声明
stmt = conn.createStatement();
System.out.println("jdbc:odbc:" + sOdbcServer + " 连接成功");
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
return false;
}
}
public boolean getConnection(String sSqlServer, String sUserName,
final String sPassWord) {
if (sSqlServer.equals("") || sSqlServer == null) {
sSqlServer = "127.0.0.1";
}
if (sUserName.equals("") || sUserName == null) {
sUserName = "sa";
}
try {
// 加载SQLDRIVER驱动器
Class.forName(sSqlServerDriver);
// 建立连接
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://"
+ sSqlServer + ":1433", sUserName, sPassWord);
// 关闭自动提交
conn.setAutoCommit(false);
// 设定事务级别
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
// 创建一个JDBC声明
stmt = conn.createStatement();
System.out.println("SQLSERVER 连接成功");
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
return false;
}
}
public boolean getConnection(String sSqlServer, String sDataBaseName,
String sUserName, final String sPassWord) {
if (sSqlServer.equals("") || sSqlServer == null) {
sSqlServer = "127.0.0.1";
}
if (sUserName.equals("") || sUserName == null) {
sUserName = "sa";
}
if (sDataBaseName != null && !sDataBaseName.equals("")) {
sDataBaseName = ";DatabaseName=" + sDataBaseName;
}
try {
// 加载SQLDRIVER驱动器
Class.forName(sSqlServerDriver);
// 建立连接
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://"
+ sSqlServer + ":1433" + sDataBaseName, sUserName,
sPassWord);
// 关闭自动提交
conn.setAutoCommit(false);
// 设定事务级别
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
// 创建一个JDBC声明
stmt = conn.createStatement();
System.out.println("SQLSERVER:[" + sSqlServer + "] 连接成功");
return true;
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
return false;
}
}
/**
* <p>
* 关闭数据连接
* </p>
*
* @throws SQLException
* @see main(String[])
*/
public void closeDB() {
try {
// Connection success
if (conn != null) {
// 在系统连接关闭之前,
// 将所有未能及时提交的事务释放
conn.commit();
// 解除事务操作
conn.setAutoCommit(true);
// 关闭连接
if (!conn.isClosed())
conn.close();
}
} catch (SQLException se) {
System.out.println(se.getMessage());
se.printStackTrace();
}
}
/**
* <p>
* 获取服务器端系统时间
* </p>
*
* @return 时间字符串,格式形如"yyyy-mm-dd HH-MM" 查询出错返回null值
*/
public String getSysDate() {
String sSQL = "SELECT SUBSTRING(CONVERT(VARCHAR(16),GETDATE(),120),1,16) AS SYSDATE";
try {
rs = stmt.executeQuery(sSQL);
while (rs.next()) {
return (rs.getString("SYSDATE"));
}
} catch (SQLException se) {
System.out.println(se.getMessage());
se.printStackTrace();
}
return null;
}
/**
* <p>
* 执行查询数据库的SQL语句
* </p>
*
* @param sql-要执行的SQL查询语句
* @return 查询成功返回true,失败返回false
* @see db.java
*/
public boolean execQuery(String sql) {
try {
rs = stmt.executeQuery(sql);
System.out.println(sql + " 执行成功");
return true;
} catch (SQLException se) {
System.out.println(se.getMessage());
se.printStackTrace();
}
return false;
}
/**
* <p>
* 执行更新数据库操作的SQL语句
* </p>
* SQL语句为INSERT,DELETE,UPDATE等更新操作
*
* @param sql-传入的待执行的SQL语句
* @return int-操作成功时返回记录号,否则返回0表示操作不成功
* @see db.java
*/
public int execUpdate(String sql) {
try {
int i = stmt.executeUpdate(sql);
conn.commit();
System.out.println(sql + " 执行成功");
return i;
} catch (SQLException se) {
System.out.println(se.getMessage());
se.printStackTrace();
try {
conn.rollback();
} catch (SQLException s) {
System.out.println(s.getMessage());
s.printStackTrace();
}
}
return 0;
}
}