java sqlhelper_java版sqlhelper(转)

packageSql;import java.sql.*;import java.util.logging.*;/*** SQL 基本操作

* 通过它,可以很轻松的使用 JDBC 来操纵数据库*/

public classSQLHelper

{/*** 驱动*/

public static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";/*** 连接字符串*/

public static String url = "jdbc:sqlserver://192.168.1.88:1433;DatabaseName=Test";/*** 用户名*/

public static String user = "sa";/*** 密码*/

public static String password = "sa";/*** 不允许实例化该类*/

privateSQLHelper()

{

}/*** 获取一个数据库连接

* 通过设置类的 driver / url / user / password 这四个静态变量来 设置数据库连接属性

*@return数据库连接*/

public staticConnection 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{returnDriverManager.getConnection(url, user, password);

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);return null;

}

}/*** 获取一个 Statement

* 该 Statement 已经设置数据集 可以滚动,可以更新

*@return如果获取失败将返回 null,调用时记得检查返回值*/

public staticStatement getStatement()

{

Connection conn=getConnection();if (conn == null)

{return null;

}try{returnconn.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 已经设置数据集 可以滚动,可以更新

*@paramconn 数据库连接

*@return如果获取失败将返回 null,调用时记得检查返回值*/

public staticStatement getStatement(Connection conn)

{if (conn == null)

{return null;

}try{returnconn.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 已经设置数据集 可以滚动,可以更新

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return如果获取失败将返回 null,调用时记得检查返回值*/

public staticPreparedStatement 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);

}returnpstmt;

}/*** 获取一个带参数的 PreparedStatement

* 该 PreparedStatement 已经设置数据集 可以滚动,可以更新

*@paramconn 数据库连接

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return如果获取失败将返回 null,调用时记得检查返回值*/

public staticPreparedStatement 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);

}returnpstmt;

}/*** 执行 SQL 语句,返回结果为整型

* 主要用于执行非查询语句

*@paramcmdText SQL 语句

*@return非负数:正常执行; -1:执行错误; -2:连接错误*/

public static intExecSql(String cmdText)

{

Statement stmt=getStatement();if (stmt == null)

{return -2;

}inti;try{

i=stmt.executeUpdate(cmdText);

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,

ex);

i= -1;

}

closeConnection(stmt);returni;

}/*** 执行 SQL 语句,返回结果为整型

* 主要用于执行非查询语句

*@paramcmdText SQL 语句

*@return非负数:正常执行; -1:执行错误; -2:连接错误*/

public static intExecSql(Connection conn, String cmdText)

{

Statement stmt=getStatement(conn);if (stmt == null)

{return -2;

}inti;try{

i=stmt.executeUpdate(cmdText);

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,

ex);

i= -1;

}

close(stmt);returni;

}/*** 执行 SQL 语句,返回结果为整型

* 主要用于执行非查询语句

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return非负数:正常执行; -1:执行错误; -2:连接错误*/

public static intExecSql(String cmdText, Object... cmdParams)

{

PreparedStatement pstmt=getPreparedStatement(cmdText, cmdParams);if (pstmt == null)

{return -2;

}inti;try{

i=pstmt.executeUpdate();

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,

ex);

i= -1;

}

closeConnection(pstmt);returni;

}/*** 执行 SQL 语句,返回结果为整型

* 主要用于执行非查询语句

*@paramconn 数据库连接

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return非负数:正常执行; -1:执行错误; -2:连接错误*/

public static intExecSql(Connection conn, String cmdText, Object... cmdParams)

{

PreparedStatement pstmt=getPreparedStatement(conn, cmdText, cmdParams);if (pstmt == null)

{return -2;

}inti;try{

i=pstmt.executeUpdate();

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

i= -1;

}

close(pstmt);returni;

}/*** 返回结果集的第一行的一列的值,其他忽略

*@paramcmdText SQL 语句

*@return

*/

public staticObject ExecScalar(String cmdText)

{

ResultSet rs=getResultSet(cmdText);

Object obj=buildScalar(rs);

closeConnection(rs);returnobj;

}/*** 返回结果集的第一行的一列的值,其他忽略

*@paramconn 数据库连接

*@paramcmdText SQL 语句

*@return

*/

public staticObject ExecScalar(Connection conn, String cmdText)

{

ResultSet rs=getResultSet(conn, cmdText);

Object obj=buildScalar(rs);

closeEx(rs);returnobj;

}/*** 返回结果集的第一行的一列的值,其他忽略

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return

*/

public staticObject ExecScalar(String cmdText, Object... cmdParams)

{

ResultSet rs=getResultSet(cmdText, cmdParams);

Object obj=buildScalar(rs);

closeConnection(rs);returnobj;

}/*** 返回结果集的第一行的一列的值,其他忽略

*@paramconn 数据库连接

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return

*/

public staticObject ExecScalar(Connection conn, String cmdText, Object... cmdParams)

{

ResultSet rs=getResultSet(conn, cmdText, cmdParams);

Object obj=buildScalar(rs);

closeEx(rs);returnobj;

}/*** 返回一个 ResultSet

*@paramcmdText SQL 语句

*@return

*/

public staticResultSet getResultSet(String cmdText)

{

Statement stmt=getStatement();if (stmt == null)

{return null;

}try{returnstmt.executeQuery(cmdText);

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

closeConnection(stmt);

}return null;

}/*** 返回一个 ResultSet

*@paramconn

*@paramcmdText SQL 语句

*@return

*/

public staticResultSet getResultSet(Connection conn, String cmdText)

{

Statement stmt=getStatement(conn);if (stmt == null)

{return null;

}try{returnstmt.executeQuery(cmdText);

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

close(stmt);

}return null;

}/*** 返回一个 ResultSet

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return

*/

public staticResultSet getResultSet(String cmdText, Object... cmdParams)

{

PreparedStatement pstmt=getPreparedStatement(cmdText, cmdParams);if (pstmt == null)

{return null;

}try{returnpstmt.executeQuery();

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

closeConnection(pstmt);

}return null;

}/*** 返回一个 ResultSet

*@paramconn 数据库连接

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams SQL 语句的参数表

*@return

*/

public staticResultSet getResultSet(Connection conn, String cmdText, Object... cmdParams)

{

PreparedStatement pstmt=getPreparedStatement(conn, cmdText, cmdParams);if (pstmt == null)

{return null;

}try{returnpstmt.executeQuery();

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

close(pstmt);

}return null;

}public staticObject 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);

}returnobj;

}/*** 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了

*@paramcmdText 能返回一个数据集的查询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;

}*/

/*** 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了

*@paramconn 数据库连接

*@paramcmdText 能返回一个数据集的查询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;

}*/

/*** 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams 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;

}*/

/*** 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了

*@paramconn 数据库连接

*@paramcmdText 需要 ? 参数的 SQL 语句

*@paramcmdParams 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 voidclose(Object obj)

{if (obj == null)

{return;

}try{if (obj instanceofStatement)

{

((Statement) obj).close();

}else if (obj instanceofPreparedStatement)

{

((PreparedStatement) obj).close();

}else if (obj instanceofResultSet)

{

((ResultSet) obj).close();

}else if (obj instanceofConnection)

{

((Connection) obj).close();

}

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

}

}private static voidcloseEx(Object obj)

{if (obj == null)

{return;

}try{if (obj instanceofStatement)

{

((Statement) obj).close();

}else if (obj instanceofPreparedStatement)

{

((PreparedStatement) obj).close();

}else if (obj instanceofResultSet)

{

((ResultSet) obj).getStatement().close();

}else if (obj instanceofConnection)

{

((Connection) obj).close();

}

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

}

}private static voidcloseConnection(Object obj)

{if (obj == null)

{return;

}try{if (obj instanceofStatement)

{

((Statement) obj).getConnection().close();

}else if (obj instanceofPreparedStatement)

{

((PreparedStatement) obj).getConnection().close();

}else if (obj instanceofResultSet)

{

((ResultSet) obj).getStatement().getConnection().close();

}else if (obj instanceofConnection)

{

((Connection) obj).close();

}

}catch(SQLException ex)

{

Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值