SQLHelper--java类
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类的更多相关文章
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- jvm系列(一):java类的加载机制
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...
- java类与实例
最近在看设计模式,感觉自己对java的三大特性的理解不够清晰,搞不清楚抽象类.接口.泛型的用处和优缺点.设计模式学了一半,想着还是停下来脑补一下java的基础,就从java对象开始吧. 一.java对 ...
- oracle调用JAVA类的方法
导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了, 1.操作系统需要拥有支持loadjava命令的jdk. 2.加 ...
- Java 类的实例变量初始化的过程 静态块、非静态块、构造函数的加载顺序
先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
- kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...
- Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)
今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java ...
- Java类初始化
Java类初始化 成员变量的初始化和构造器 如果类的成员变量在定义时没有进行显示的初始化赋值,Java会给每个成员变量一个默认值 对于 char.short.byte.int.long.float. ...
- 微软版的SqlHelper.cs类
一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...
随机推荐
- 搭建app自动化测试环境(一)
①:想实现自动化,第一步先安装python然后第二步安装selenium, 第三步安装JDK,然后J配置好JDK环境变量 JAVA_HOME C:\Program Files\Java\jdk1 ...
- 从Oracle Database 角度来看浪潮天梭K1主机的操作系统选择
背景: 浪潮天梭k1主机.事实上分好几个类别: K1-950 intel 安腾cpu K1-930 intel 安腾cpu K1-910 intel 安腾cpu K1-800 intel 志强cpu ...
- 里根上台时国债只占GDP的30%
学里根是刻舟求剑,关键是钱从哪来 5 里根主要靠借钱,这是冷战红利,美国打完二战国债占了GDP的120%,然后总量就没怎么增加,但战后GDP快速增长,结果国债占GDP的比例连续下降,打越战登月石油危 ...
- 曲根英语万词---二、evoke
曲根英语万词---二.evoke 一.总结 一句话总结:evoke v.唤起,引起 词根:-voc-, -vok- [词根含义]:声音,叫喊 1.consecrate? v,供奉,奉为神圣 -ate, ...
- 基于opencv的手写数字字符识别
摘要 本程序主要参照论文,<基于OpenCV的脱机手写字符识别技术>实现了,对于手写阿拉伯数字的识别工作.识别工作分为三大步骤:预处理,特征提取,分类识别.预处理过程主要找到图像的ROI部 ...
- Wordpress 问题
迁移乱码 最近在做 wordpress 迁移,数据导入到服务器后,前后台都是乱码, phpMyAdmin 里的表数据就出现了乱码. 如果您也遇到和我一样的情况,本地使用 phpMyAdmin 导出 s ...
- for循环练习-----ATM取款
要求: 代码: package com.jianglai.atm; import java.util.Scanner; public class ATM { public static void ma ...
- 1570. [POJ3461]乌力波
★☆ 输入文件:oulipo.in 输出文件:oulipo.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 法国作家乔治·佩雷克(Georges Perec,1 ...
- win10安装jdk8 配置环境变量
参考:https://jingyan.baidu.com/article/6b97984dd257b41ca2b0bf86.html
- vmware workstation虚拟机克隆后不能上网(桥接模式下)
(CentOS6.8下) 重启新克隆的虚拟机,输入用户名密码,进入系统. 1.修改网卡配置,输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0 出现类似如下 ...