如果有一天面试官要求你写下JDBC代码,你可以这样写!

  按照这个方法写,至少85分!

  DbConnectionManager的代码就不贴出来。关键的是以下几个类。

  1、JdbcHelper类

/**
* 类描述:jdbc 工具类

*/
public abstract class JdbcHelper{
/**
* 处理查询类的函数
*
@param callback
*
@return
*/
public static Object doJdbc(JdbcQueryCallback callback){
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
con = DbConnectionManager.getConnection();
callback.done(con, pstmt, rs);
}
catch (SQLException e){
callback.error(e);
}
finally{
DbConnectionManager.closeConnection(rs, pstmt, con);
}
return callback.getResult();
}

/**
* 处理命令类的函数
*
@param callback
*/
public static void doJdbc(JdbcCommandCallback callback){
Connection con = null;
PreparedStatement pstmt = null;
try{
con = DbConnectionManager.getConnection();
callback.done(con, pstmt);
}
catch (SQLException e){
callback.error(e);
}
finally{
DbConnectionManager.closeConnection(pstmt, con);
}
}

/**
* 处理命令类,并返回执行结果 true/false
*
@param callback
*/
public boolean doJdbc(JdbcBoolCommandCallback callback)
{
Connection con = null;
PreparedStatement pstmt = null;
try{
con = DbConnectionManager.getConnection();
callback.done(con, pstmt);
}
catch (SQLException e){
callback.error(e);
}
finally{
DbConnectionManager.closeConnection(pstmt, con);
}
return callback.getResult();
}

/**
* 批处理命令类的函数
*
@param callback
*/
public static void doBatchJdbc(JdbcCommandCallback callback){

Connection con = null;
PreparedStatement pstmt = null;
try{
con = DbConnectionManager.getConnection();
con.setAutoCommit(false);
callback.done(con, pstmt);
con.commit();
}
catch (SQLException e){
callback.error(e);
}
finally{
DbConnectionManager.closeConnection(pstmt, con);
}
}
}

  2、JdbcQueryCallback类

/**
* 查询式callback
*/
public interface JdbcQueryCallback
{
/**
* 执行sql
*
@param con
*
@param pstmt
*
@param rs
*
@throws SQLException
*/
public void done(Connection con, PreparedStatement pstmt, ResultSet rs)
throws SQLException;

/**
* 打印错误日志
*/
public void error(SQLException e);
/**
* 获取查询结果
*/
public Object getResult();
}

  3、JdbcCommandCallback类

/**
* 命令式callback
*/
public interface JdbcCommandCallback
{
/**
* 执行sql
*
@param con
*
@param pstmt
*
@param rs
*
@throws SQLException
*/
public void done(Connection con, PreparedStatement pstmt) throws SQLException;
/**
* 打印错误日志
*/
public void error(SQLException e);
}

  4、JdbcBoolCommandCallback类

/**
* 命令式callback

*/
public interface JdbcBoolCommandCallback extends JdbcCommandCallback{
/**
* 返回命令执行结果,
*
@return true 成功
* false 失败
*/
public boolean getResult();
}



 

转载于:https://www.cnblogs.com/MartinChen999/archive/2012/01/04/2312278.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值