SQL数据库连接

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

你可能感兴趣的:(sql,jdbc,Microsoft,sun)