package richard;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger; public class SQLHelper {
/**
* 驱动
*/
public static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
/**
* 连接字符串
*/
public static String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Train";
/**
* 用户名
*/
public static String user = "sa";
/**
* 密码
*/
public static String password = "cui2012";
/**
* 不允许实例化该类
*/
private SQLHelper()
{ }
/**
* 获取一个数据库连接
* 通过设置类的 driver / url / user / password 这四个静态变量来 设置数据库连接属性
* @return 数据库连接
*/
public static Connection getConnection()
{
try
{
// 获取驱动,这里使用的是 sqljdbc_1.2.2828.100_chs.exe,不同版本的驱动,语句有所不同
Class.forName(driver);
} catch (ClassNotFoundException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
return DriverManager.getConnection(url, user, password);
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
/**
* 获取一个 Statement
* 该 Statement 已经设置数据集 可以滚动,可以更新
* @return 如果获取失败将返回 null,调用时记得检查返回值
*/
public static Statement getStatement()
{
Connection conn = getConnection();
if (conn == null)
{
return null;
}
try
{
return (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// 设置数据集可以滚动,可以更新
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
close(conn);
}
return null;
}
/**
* 获取一个 Statement
* 该 Statement 已经设置数据集 可以滚动,可以更新
* @param conn 数据库连接
* @return 如果获取失败将返回 null,调用时记得检查返回值
*/
public static Statement getStatement(Connection conn)
{
if (conn == null)
{
return null;
}
try
{
return (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
// 设置数据集可以滚动,可以更新
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
/**
* 获取一个带参数的 PreparedStatement
* 该 PreparedStatement 已经设置数据集 可以滚动,可以更新
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return 如果获取失败将返回 null,调用时记得检查返回值
*/
public static PreparedStatement getPreparedStatement(String cmdText, Object... cmdParams)
{
Connection conn = getConnection();
if (conn == null)
{
return null;
}
PreparedStatement pstmt = null;
try
{
pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
int i = 1;
for (Object item : cmdParams)
{
pstmt.setObject(i, item);
i++;
}
} catch (SQLException e)
{
e.printStackTrace();
close(conn);
}
return pstmt;
}
/**
* 获取一个带参数的 PreparedStatement
* 该 PreparedStatement 已经设置数据集 可以滚动,可以更新
* @param conn 数据库连接
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return 如果获取失败将返回 null,调用时记得检查返回值
*/
public static PreparedStatement getPreparedStatement(Connection conn, String cmdText, Object... cmdParams)
{
if (conn == null)
{
return null;
}
PreparedStatement pstmt = null;
try
{
pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
int i = 1;
for (Object item : cmdParams)
{
pstmt.setObject(i, item);
i++;
}
} catch (SQLException e)
{
e.printStackTrace();
close(pstmt);
}
return pstmt;
}
/**
* 执行 SQL 语句,返回结果为整型
* 主要用于执行非查询语句
* @param cmdText SQL 语句
* @return 非负数:正常执行; -1:执行错误; -2:连接错误
*/
public static int ExecSql(String cmdText)
{
Statement stmt = getStatement();
if (stmt == null)
{
return -2;
}
int i;
try
{
i = ((java.sql.Statement) stmt).executeUpdate(cmdText);
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,
ex);
i = -1;
}
closeConnection(stmt);
return i;
}
/**
* 执行 SQL 语句,返回结果为整型
* 主要用于执行非查询语句
* @param cmdText SQL 语句
* @return 非负数:正常执行; -1:执行错误; -2:连接错误
*/
public static int ExecSql(Connection conn, String cmdText)
{
Statement stmt = getStatement(conn);
if (stmt == null)
{
return -2;
}
int i;
try
{
i = ((java.sql.Statement) stmt).executeUpdate(cmdText);
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,
ex);
i = -1;
}
close(stmt);
return i;
}
/**
* 执行 SQL 语句,返回结果为整型
* 主要用于执行非查询语句
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return 非负数:正常执行; -1:执行错误; -2:连接错误
*/
public static int ExecSql(String cmdText, Object... cmdParams)
{
PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
if (pstmt == null)
{
return -2;
}
int i;
try
{
i = pstmt.executeUpdate();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,
ex);
i = -1;
}
closeConnection(pstmt);
return i;
}
/**
* 执行 SQL 语句,返回结果为整型
* 主要用于执行非查询语句
* @param conn 数据库连接
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return 非负数:正常执行; -1:执行错误; -2:连接错误
*/
public static int ExecSql(Connection conn, String cmdText, Object... cmdParams)
{
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
if (pstmt == null)
{
return -2;
}
int i;
try
{
i = pstmt.executeUpdate();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
i = -1;
}
close(pstmt);
return i;
}
/**
* 返回结果集的第一行的一列的值,其他忽略
* @param cmdText SQL 语句
* @return
*/
public static Object ExecScalar(String cmdText)
{
ResultSet rs = getResultSet(cmdText);
Object obj = buildScalar(rs);
closeConnection(rs);
return obj;
}
/**
* 返回结果集的第一行的一列的值,其他忽略
* @param conn 数据库连接
* @param cmdText SQL 语句
* @return
*/
public static Object ExecScalar(Connection conn, String cmdText)
{
ResultSet rs = getResultSet(conn, cmdText);
Object obj = buildScalar(rs);
closeEx(rs);
return obj;
}
/**
* 返回结果集的第一行的一列的值,其他忽略
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return
*/
public static Object ExecScalar(String cmdText, Object... cmdParams)
{
ResultSet rs = getResultSet(cmdText, cmdParams);
Object obj = buildScalar(rs);
closeConnection(rs);
return obj;
}
/**
* 返回结果集的第一行的一列的值,其他忽略
* @param conn 数据库连接
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return
*/
public static Object ExecScalar(Connection conn, String cmdText, Object... cmdParams)
{
ResultSet rs = getResultSet(conn, cmdText, cmdParams);
Object obj = buildScalar(rs);
closeEx(rs);
return obj;
}
/**
* 返回一个 ResultSet
* @param cmdText SQL 语句
* @return
*/
public static ResultSet getResultSet(String cmdText)
{
Statement stmt = getStatement();
if (stmt == null)
{
return null;
}
try
{
return ((java.sql.Statement) stmt).executeQuery(cmdText);
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
closeConnection(stmt);
}
return null;
}
/**
* 返回一个 ResultSet
* @param conn
* @param cmdText SQL 语句
* @return
*/
public static ResultSet getResultSet(Connection conn, String cmdText)
{
Statement stmt = getStatement(conn);
if (stmt == null)
{
return null;
}
try
{
return ((java.sql.Statement) stmt).executeQuery(cmdText);
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
close(stmt);
}
return null;
}
/**
* 返回一个 ResultSet
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return
*/
public static ResultSet getResultSet(String cmdText, Object... cmdParams)
{
PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
if (pstmt == null)
{
return null;
}
try
{
return pstmt.executeQuery();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
closeConnection(pstmt);
}
return null;
}
/**
* 返回一个 ResultSet
* @param conn 数据库连接
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return
*/
public static ResultSet getResultSet(Connection conn, String cmdText, Object... cmdParams)
{
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
if (pstmt == null)
{
return null;
}
try
{
return pstmt.executeQuery();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
close(pstmt);
}
return null;
}
public static Object buildScalar(ResultSet rs)
{
if (rs == null)
{
return null;
}
Object obj = null;
try
{
if (rs.next())
{
obj = rs.getObject(1);
}
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
}
return obj;
} /**
* 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
* @param cmdText 能返回一个数据集的查询SQL 语句
* @return 表格数据模型
*
*
* DataSet 没有找到在哪个包中,因为暂时用不到所以省略此方法 public static DataSet getDataSet(String cmdText)
{
Statement stmt = getStatement();
DataSet dbc = new DataSet();
if (stmt == null)
{
dbc.code = -2;
return dbc;
}
try
{
// 查询语句
dbc.rs = stmt.executeQuery(cmdText);
dbc.model = buildTableModel(dbc.rs);
dbc.code = dbc.model.getRowCount();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
dbc.code = -1;
}
return dbc;
}
*/ /**
* 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
* @param conn 数据库连接
* @param cmdText 能返回一个数据集的查询SQL 语句
* @return 表格数据模型
*
* 同上一个方法 public static DataSet getDataSet(Connection conn, String cmdText)
{
Statement stmt = getStatement(conn);
DataSet dbc = new DataSet();
if (stmt == null)
{
dbc.code = -2;
return dbc;
}
try
{
// 查询语句
dbc.rs = stmt.executeQuery(cmdText);
dbc.model = buildTableModel(dbc.rs);
dbc.code = dbc.model.getRowCount();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
dbc.code = -1;
}
return dbc;
}
*/
/**
* 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return 表格数据模型
*
*
* 同上一个方法 *
* public static DataSet getDataSet(String cmdText, Object... cmdParams)
{
PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
DataSet dbc = new DataSet();
if (pstmt == null)
{
dbc.code = -2;
return dbc;
}
try
{
// 查询语句
dbc.rs = pstmt.executeQuery();
dbc.model = buildTableModel(dbc.rs);
dbc.code = dbc.model.getRowCount();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
dbc.code = -1;
}
return dbc;
} */
/**
* 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
* @param conn 数据库连接
* @param cmdText 需要 ? 参数的 SQL 语句
* @param cmdParams SQL 语句的参数表
* @return 表格数据模型
*
*
* 同上
* public static DataSet getDataSet(Connection conn, String cmdText, Object... cmdParams)
{
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
DataSet dbc = new DataSet();
if (pstmt == null)
{
dbc.code = -2;
return dbc;
}
try
{
// 查询语句
dbc.rs = pstmt.executeQuery();
dbc.model = buildTableModel(dbc.rs);
dbc.code = dbc.model.getRowCount();
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
dbc.code = -1;
}
return dbc;
}
*/
private static void close(Object obj)
{
if (obj == null)
{
return;
}
try
{
if (obj instanceof Statement)
{
((Connection) obj).close();
} else if (obj instanceof PreparedStatement)
{
((PreparedStatement) obj).close();
} else if (obj instanceof ResultSet)
{
((ResultSet) obj).close();
} else if (obj instanceof Connection)
{
((Connection) obj).close();
}
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static void closeEx(Object obj)
{
if (obj == null)
{
return;
}
try
{
if (obj instanceof Statement)
{
((Connection) obj).close();
} else if (obj instanceof PreparedStatement)
{
((PreparedStatement) obj).close();
} else if (obj instanceof ResultSet)
{
((ResultSet) obj).getStatement().close();
} else if (obj instanceof Connection)
{
((Connection) obj).close();
}
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
}
}
private static void closeConnection(Object obj)
{
if (obj == null)
{
return;
}
try
{
if (obj instanceof Statement)
{
((java.sql.Statement) obj).getConnection().close();
} else if (obj instanceof PreparedStatement)
{
((PreparedStatement) obj).getConnection().close();
} else if (obj instanceof ResultSet)
{
((ResultSet) obj).getStatement().getConnection().close();
} else if (obj instanceof Connection)
{
((Connection) obj).close();
}
} catch (SQLException ex)
{
Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

  

package richard;
import java.beans.Statement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.logging.Level;import java.util.logging.Logger;
public class SQLHelper {/**      * 驱动      */      public static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";      /**      * 连接字符串      */      public static String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Train";      /**      * 用户名      */      public static String user = "sa";      /**      * 密码      */      public static String password = "cui2012";      /**      * 不允许实例化该类      */      private SQLHelper()      {         }      /**      * 获取一个数据库连接      * 通过设置类的  driver / url / user / password 这四个静态变量来 设置数据库连接属性      * @return 数据库连接      */      public static Connection getConnection()      {          try          {              // 获取驱动,这里使用的是 sqljdbc_1.2.2828.100_chs.exe,不同版本的驱动,语句有所不同              Class.forName(driver);          } catch (ClassNotFoundException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);          }          try          {              return DriverManager.getConnection(url, user, password);          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              return null;          }      }      /**      * 获取一个 Statement      * 该 Statement 已经设置数据集 可以滚动,可以更新      * @return 如果获取失败将返回 null,调用时记得检查返回值      */      public static Statement getStatement()      {          Connection conn = getConnection();          if (conn == null)          {              return null;          }          try          {              return (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,                      ResultSet.CONCUR_UPDATABLE);          // 设置数据集可以滚动,可以更新          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              close(conn);          }          return null;      }      /**      * 获取一个 Statement      * 该 Statement 已经设置数据集 可以滚动,可以更新      * @param conn 数据库连接      * @return 如果获取失败将返回 null,调用时记得检查返回值      */      public static Statement getStatement(Connection conn)      {          if (conn == null)          {              return null;          }          try          {              return (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);          // 设置数据集可以滚动,可以更新          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              return null;          }      }      /**      * 获取一个带参数的 PreparedStatement      * 该 PreparedStatement 已经设置数据集 可以滚动,可以更新      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return 如果获取失败将返回 null,调用时记得检查返回值      */      public static PreparedStatement getPreparedStatement(String cmdText, Object... cmdParams)      {          Connection conn = getConnection();          if (conn == null)          {              return null;          }          PreparedStatement pstmt = null;          try          {              pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);              int i = 1;              for (Object item : cmdParams)              {                  pstmt.setObject(i, item);                  i++;              }          } catch (SQLException e)          {              e.printStackTrace();              close(conn);          }          return pstmt;      }      /**      *  获取一个带参数的 PreparedStatement      * 该 PreparedStatement 已经设置数据集 可以滚动,可以更新      * @param conn 数据库连接      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return 如果获取失败将返回 null,调用时记得检查返回值      */      public static PreparedStatement getPreparedStatement(Connection conn, String cmdText, Object... cmdParams)      {          if (conn == null)          {              return null;          }          PreparedStatement pstmt = null;          try          {              pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);              int i = 1;              for (Object item : cmdParams)              {                  pstmt.setObject(i, item);                  i++;              }          } catch (SQLException e)          {              e.printStackTrace();              close(pstmt);          }          return pstmt;      }      /**      * 执行 SQL 语句,返回结果为整型      * 主要用于执行非查询语句      * @param cmdText SQL 语句      * @return 非负数:正常执行; -1:执行错误; -2:连接错误      */      public static int ExecSql(String cmdText)      {          Statement stmt = getStatement();          if (stmt == null)          {              return -2;          }          int i;          try          {              i = ((java.sql.Statement) stmt).executeUpdate(cmdText);          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,                      ex);              i = -1;          }          closeConnection(stmt);          return i;      }      /**      * 执行 SQL 语句,返回结果为整型      * 主要用于执行非查询语句      * @param cmdText SQL 语句      * @return 非负数:正常执行; -1:执行错误; -2:连接错误      */      public static int ExecSql(Connection conn, String cmdText)      {          Statement stmt = getStatement(conn);          if (stmt == null)          {              return -2;          }          int i;          try          {              i = ((java.sql.Statement) stmt).executeUpdate(cmdText);          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,                      ex);              i = -1;          }          close(stmt);          return i;      }      /**      * 执行 SQL 语句,返回结果为整型      * 主要用于执行非查询语句      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return 非负数:正常执行; -1:执行错误; -2:连接错误      */      public static int ExecSql(String cmdText, Object... cmdParams)      {          PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);          if (pstmt == null)          {              return -2;          }          int i;          try          {              i = pstmt.executeUpdate();          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,                      ex);              i = -1;          }          closeConnection(pstmt);          return i;      }      /**      * 执行 SQL 语句,返回结果为整型      * 主要用于执行非查询语句      * @param conn 数据库连接      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return 非负数:正常执行; -1:执行错误; -2:连接错误      */      public static int ExecSql(Connection conn, String cmdText, Object... cmdParams)      {          PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);          if (pstmt == null)          {              return -2;          }          int i;          try          {              i = pstmt.executeUpdate();          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              i = -1;          }          close(pstmt);          return i;      }      /**      * 返回结果集的第一行的一列的值,其他忽略      * @param cmdText SQL 语句      * @return      */      public static Object ExecScalar(String cmdText)      {          ResultSet rs = getResultSet(cmdText);          Object obj = buildScalar(rs);          closeConnection(rs);          return obj;      }      /**      * 返回结果集的第一行的一列的值,其他忽略      * @param conn 数据库连接      * @param cmdText SQL 语句      * @return      */      public static Object ExecScalar(Connection conn, String cmdText)      {          ResultSet rs = getResultSet(conn, cmdText);          Object obj = buildScalar(rs);          closeEx(rs);          return obj;      }      /**      * 返回结果集的第一行的一列的值,其他忽略      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return      */      public static Object ExecScalar(String cmdText, Object... cmdParams)      {          ResultSet rs = getResultSet(cmdText, cmdParams);          Object obj = buildScalar(rs);          closeConnection(rs);          return obj;      }      /**      * 返回结果集的第一行的一列的值,其他忽略      * @param conn 数据库连接      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return      */      public static Object ExecScalar(Connection conn, String cmdText, Object... cmdParams)      {          ResultSet rs = getResultSet(conn, cmdText, cmdParams);          Object obj = buildScalar(rs);          closeEx(rs);          return obj;      }      /**      * 返回一个 ResultSet      * @param cmdText SQL 语句      * @return      */      public static ResultSet getResultSet(String cmdText)      {          Statement stmt = getStatement();          if (stmt == null)          {              return null;          }          try          {              return ((java.sql.Statement) stmt).executeQuery(cmdText);          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              closeConnection(stmt);          }          return null;      }      /**      * 返回一个 ResultSet      * @param conn      * @param cmdText SQL 语句      * @return      */      public static ResultSet getResultSet(Connection conn, String cmdText)      {          Statement stmt = getStatement(conn);          if (stmt == null)          {              return null;          }          try          {              return ((java.sql.Statement) stmt).executeQuery(cmdText);          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              close(stmt);          }          return null;      }      /**      * 返回一个 ResultSet      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return      */      public static ResultSet getResultSet(String cmdText, Object... cmdParams)      {          PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);          if (pstmt == null)          {              return null;          }          try          {              return pstmt.executeQuery();          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              closeConnection(pstmt);          }          return null;      }      /**      * 返回一个 ResultSet      * @param conn 数据库连接      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return      */      public static ResultSet getResultSet(Connection conn, String cmdText, Object... cmdParams)      {          PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);          if (pstmt == null)          {              return null;          }          try          {              return pstmt.executeQuery();          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);              close(pstmt);          }          return null;      }      public static Object buildScalar(ResultSet rs)      {          if (rs == null)          {              return null;          }          Object obj = null;          try          {              if (rs.next())              {                  obj = rs.getObject(1);              }          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);          }          return obj;      }                    /**      * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了      * @param cmdText 能返回一个数据集的查询SQL 语句      * @return 表格数据模型      *       *       * DataSet 没有找到在哪个包中,因为暂时用不到所以省略此方法           public static DataSet getDataSet(String cmdText)     {         Statement stmt = getStatement();         DataSet dbc = new DataSet();         if (stmt == null)         {             dbc.code = -2;             return dbc;         }         try         {             // 查询语句             dbc.rs = stmt.executeQuery(cmdText);             dbc.model = buildTableModel(dbc.rs);             dbc.code = dbc.model.getRowCount();         } catch (SQLException ex)         {             Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);             dbc.code = -1;         }         return dbc;     }     */            /**      * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了      * @param conn 数据库连接      * @param cmdText 能返回一个数据集的查询SQL 语句      * @return 表格数据模型      *       * 同上一个方法           public static DataSet getDataSet(Connection conn, String cmdText)     {         Statement stmt = getStatement(conn);         DataSet dbc = new DataSet();         if (stmt == null)         {             dbc.code = -2;             return dbc;         }         try         {             // 查询语句             dbc.rs = stmt.executeQuery(cmdText);             dbc.model = buildTableModel(dbc.rs);             dbc.code = dbc.model.getRowCount();         } catch (SQLException ex)         {             Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);             dbc.code = -1;         }         return dbc;     }     */      /**      * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return 表格数据模型      *       *       * 同上一个方法     *       *           public static DataSet getDataSet(String cmdText, Object... cmdParams)     {         PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);         DataSet dbc = new DataSet();         if (pstmt == null)         {             dbc.code = -2;             return dbc;         }         try         {             // 查询语句             dbc.rs = pstmt.executeQuery();             dbc.model = buildTableModel(dbc.rs);             dbc.code = dbc.model.getRowCount();         } catch (SQLException ex)         {             Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);             dbc.code = -1;         }         return dbc;     }           */      /**      * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了      * @param conn 数据库连接      * @param cmdText 需要 ? 参数的 SQL 语句      * @param cmdParams SQL 语句的参数表      * @return 表格数据模型      *       *       * 同上      *            public static DataSet getDataSet(Connection conn, String cmdText, Object... cmdParams)     {         PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);         DataSet dbc = new DataSet();         if (pstmt == null)         {             dbc.code = -2;             return dbc;         }         try         {             // 查询语句             dbc.rs = pstmt.executeQuery();             dbc.model = buildTableModel(dbc.rs);             dbc.code = dbc.model.getRowCount();         } catch (SQLException ex)         {             Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);             dbc.code = -1;         }         return dbc;     }     */      private static void close(Object obj)      {          if (obj == null)          {              return;          }          try          {              if (obj instanceof Statement)              {                  ((Connection) obj).close();              } else if (obj instanceof PreparedStatement)              {                  ((PreparedStatement) obj).close();              } else if (obj instanceof ResultSet)              {                  ((ResultSet) obj).close();              } else if (obj instanceof Connection)              {                  ((Connection) obj).close();              }          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);          }      }      private static void closeEx(Object obj)      {          if (obj == null)          {              return;          }          try          {              if (obj instanceof Statement)              {                  ((Connection) obj).close();              } else if (obj instanceof PreparedStatement)              {                  ((PreparedStatement) obj).close();              } else if (obj instanceof ResultSet)              {                  ((ResultSet) obj).getStatement().close();              } else if (obj instanceof Connection)              {                  ((Connection) obj).close();              }          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);          }      }      private static void closeConnection(Object obj)      {          if (obj == null)          {              return;          }          try          {              if (obj instanceof Statement)              {                  ((java.sql.Statement) obj).getConnection().close();              } else if (obj instanceof PreparedStatement)              {                  ((PreparedStatement) obj).getConnection().close();              } else if (obj instanceof ResultSet)              {                  ((ResultSet) obj).getStatement().getConnection().close();              } else if (obj instanceof Connection)              {                  ((Connection) obj).close();              }          } catch (SQLException ex)          {              Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);          }      } }

SQLHelper--java类的更多相关文章

  1. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  2. jvm系列(一):java类的加载机制

    java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...

  3. java类与实例

    最近在看设计模式,感觉自己对java的三大特性的理解不够清晰,搞不清楚抽象类.接口.泛型的用处和优缺点.设计模式学了一半,想着还是停下来脑补一下java的基础,就从java对象开始吧. 一.java对 ...

  4. oracle调用JAVA类的方法

    导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了,  1.操作系统需要拥有支持loadjava命令的jdk.  2.加 ...

  5. Java 类的实例变量初始化的过程 静态块、非静态块、构造函数的加载顺序

    先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() ...

  6. hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化

    hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...

  7. kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  8. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java ...

  9. Java类初始化

    Java类初始化 成员变量的初始化和构造器 如果类的成员变量在定义时没有进行显示的初始化赋值,Java会给每个成员变量一个默认值 对于  char.short.byte.int.long.float. ...

  10. 微软版的SqlHelper.cs类

    一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...

随机推荐

  1. Eclipse WEB项目更改项目名

    可能很多人都碰到过 WEB 项目需要改名字的事情,不过不是每个人都能很顺畅地完成这个事情.这里简单给大家介绍两种改项目名的方法 1. 在Eclipse 中修改项目名 没错这种方法跟你预料的一样简单,当 ...

  2. oracle 登录

    命令行登录 sql plus登录 plsql登录 自己电脑登录 既然是登录自己电脑的数据库,肯定是已经安装过了oralce,而且已经创建了数据库等等. 局域网登录 1.必须安装oracleclient ...

  3. SpringMVC案例3----spring3.0项目拦截器、ajax、文件上传应用

    依然是项目结构图和所需jar包图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVuamFtaW5fd2h4/font/5a6L5L2T/fontsi ...

  4. 一起talk C栗子吧(第九十五回:C语言实例--使用共享内存进行进程间通信一)

    各位看官们,大家好,上一回中咱们说的是SystemV IPC结构概述的样例,这一回咱们说的样例是:使用共享内存进行进程间通信. 闲话休提.言归正转.让我们一起talk C栗子吧! 共享内存是Syste ...

  5. SQL Server 运行计划操作符具体解释(3)——计算标量(Compute Scalar)

    接上文:SQL Server 运行计划操作符详细解释(2)--串联(Concatenation ) 前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介 ...

  6. 【POJ 1845】 Sumdiv (整数唯分+约数和公式+二分等比数列前n项和+同余)

    [POJ 1845] Sumdiv 用的东西挺全 最主要通过这个题学了约数和公式跟二分求等比数列前n项和 另一种小优化的整数拆分  整数的唯一分解定理: 随意正整数都有且仅仅有一种方式写出其素因子的乘 ...

  7. log_archive_min_succeed_dest

    博客上.看了一大神的文章:http://blog.csdn.net/msdnchina/article/details/45141427 我表示有疑问:归档日志路径爆满,那么对于开启归档模式的数据库, ...

  8. CF 558D(Guess Your Way Out! II-set解决区间问题)

    D. Guess Your Way Out! II time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  9. programming-challenges Shoemaker's Problem (110405) 题解

    Greedy. 证明: Let's say we have job 1, 2, ..., n, and they have time and fine as t1, f1, t2, f2, ..., ...

  10. 单点登录(二)使用Cookie+File实现单点登录登出(附源代码)

    上一篇文章<单点登录(一)使用Cookie+File实现单点登录>中,我们实现了单点登录的功能. 本文作为上一篇文章的扩展部分,加入"单点登出"功能. 源代码下载:链接 ...