如果有一天面試官要求你寫下JDBC代碼,你可以這樣寫!
按照這個方法寫,至少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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
推薦閱讀
如果有一天面試官要求你寫下JDBC代碼,你可以這樣寫!
按照這個方法寫,至少85分! DbConnectionManager的代碼就不貼出來。關鍵的是以下幾個類。 1、JdbcHelper類 /** * jdbc 工具類 */ public abst...
在mysql中這樣的錯誤你遇到了嗎?
Cannot convert value '0000-00-00 00:00:00' from column 2 to TIMESTAMP. 處理方法: hibernate.connection...