如果有一天面試官要求你寫下JDBC代碼,你可以這樣寫!

openkk 12年前發布 | 1K 次閱讀 數據挖掘

按照這個方法寫,至少85分!

  DbConnectionManager的代碼就不貼出來。關鍵的是以下幾個類。

  1、JdbcHelper類

/**  * jdbc 工具類
 */ public abstract class JdbcHelper
{
    /**      * 處理查詢類的函數

 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> callback
 * </span><span style="color:#808080;">@return</span><span style="color:#008000;">      </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> Object doJdbc(JdbcQueryCallback callback){
    Connection con = <span style="color:#0000ff;">null</span>;
    PreparedStatement pstmt = <span style="color:#0000ff;">null</span>;
    ResultSet rs = <span style="color:#0000ff;">null</span>;
    <span style="color:#0000ff;">try</span>{
        con = DbConnectionManager.getConnection();
        callback.done(con, pstmt, rs);
    }
    <span style="color:#0000ff;">catch</span> (SQLException e){
        callback.error(e);
    }
    <span style="color:#0000ff;">finally</span>{
        DbConnectionManager.closeConnection(rs, pstmt, con);
    }
    <span style="color:#0000ff;">return</span> callback.getResult();
}

<span style="color:#008000;">/**</span><span style="color:#008000;">      * 處理命令類的函數
 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> callback
 * </span><span style="color:#808080;">@return</span><span style="color:#008000;">      </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> doJdbc(JdbcCommandCallback callback){
    Connection con = <span style="color:#0000ff;">null</span>;
    PreparedStatement pstmt = <span style="color:#0000ff;">null</span>;
    <span style="color:#0000ff;">try</span>{
        con = DbConnectionManager.getConnection();
        callback.done(con, pstmt);
    }
    <span style="color:#0000ff;">catch</span> (SQLException e)
    {
        callback.error(e);
    }
    <span style="color:#0000ff;">finally</span>         {
        DbConnectionManager.closeConnection(pstmt, con);
    }
}

}</pre> </div>

  2、JdbcQueryCallback類

/**  * 查詢式callback
 */ public interface JdbcQueryCallback
{
    /**      * 執行sql

 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> con
 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> pstmt
 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> rs</span><span style="color:#008000;">      * </span><span style="color:#808080;">@throws</span><span style="color:#008000;"> SQLException
 </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> done(Connection con, PreparedStatement pstmt, ResultSet rs)
        <span style="color:#0000ff;">throws</span> SQLException;

<span style="color:#008000;">/**</span><span style="color:#008000;">      * 打印錯誤日志
 </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> error(SQLException e);
<span style="color:#008000;">/**</span><span style="color:#008000;">      * 獲取查詢結果
 </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> Object getResult();

}</pre> </div>

  3、JdbcCommandCallback類

/**  * 命令式callback
 */ public interface JdbcCommandCallback
{
/** * 執行sql

 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> con
 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> pstmt
 * </span><span style="color:#808080;">@param</span><span style="color:#008000;"> rs</span><span style="color:#008000;">      * </span><span style="color:#808080;">@throws</span><span style="color:#008000;"> SQLException
 </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> done(Connection con, PreparedStatement pstmt) <span style="color:#0000ff;">throws</span> SQLException;
<span style="color:#008000;">/**</span><span style="color:#008000;">      * 打印錯誤日志
 </span><span style="color:#008000;">*/</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> error(SQLException e);

}</pre> </div> 來自:http://www.cnblogs.com/MartinChen999/archive/2012/01/04/2312278.html

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!