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

13年前
按照这个方法写,至少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       * @return      */     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);          }      }  }

  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);  }
来自:http://www.cnblogs.com/MartinChen999/archive/2012/01/04/2312278.html