<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    將數據庫操作封裝到Javabean

    封裝數據庫操作,目的就是為了隱藏java.sql包內的類,在編碼中去掉核心的數據庫操作代碼。以杜絕直接數據庫操作容易帶來的資源未釋放問題。同時也減少了數據庫操作的編碼量。

    但是很多網友在封裝時,卻喜歡返回結果集(ResultSet對象),那么這個封裝就沒有意義了。
    1. 又是直接操作核心數據庫類,跟封裝前幾乎沒什么變化。
    2. 結果集總是依賴于它使用的連接(Connection)對象。因此當連接對象在方法內被關閉后,你返回的ResultSet就沒有用了。

    如果真的要獲得查詢數據庫的結果集,就把結果集對象內的所有數據,轉儲到以Map為元素的List對象內。
    當然,這種方式,不能適應大數據量的查詢,不過如果真的碰到大數據量的查詢,那用什么封裝都不好,還是得直接數據庫操作. :)))

    下面是簡單的數據庫操作Javabean的代碼

    DbWrapper.java
    												
    														
    																import
    														 java.sql.*;import java.util.*;publicclass DbWrapper
    {// 定義連接池對象為靜態變量,將一直存在,直到工作目錄關閉。privatestatic DataSource ds =null;
    // 1.用連接池的方式獲得連接// 如果不是做多數據庫程序,推薦使用此方法// 相關內容:在tomcat管理界面配置連接池publicstatic Connection openConnection()throws Exception {// 只需要初始化1次if( ds ==null){ Context initContext =newInitialContext(); Context envContext =(Context) initContext.lookup("java:/comp/env"); DataSource ds =(DataSource) envContext.lookup("jdbc/MyDataSource");}return ds.getConnection();}// 2.用jdbc驅動獲得連接// 相關內容:JSP數據庫連接大全publicstatic Connection openConnection( String driver, String url, String username, String password)throws Exception { Class.forName(driver).newInstance();return DriverManager.getConnection(url, username, password);}publicstaticvoidcloseConnection(Connection conn)throws Exception {if( conn !=null){ conn.close();}}
    publicstaticintexecuteUpdate(String sql)throws Exception {int count =0; Connection conn =null; Statement stmt =null;try{ conn =openConnection(); stmt = conn.createStatement(); count = stmt.executeUpdate(sql);}catch( Exception e ){throw e;}finally{closeConnection(conn);}return count;}publicstatic List executeQuery(String sql)throws Exception { List list =newArrayList(); Connection conn =null; Statement stmt =null; ResultSet rs =null;try{ conn =openConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData();while( rs.next()){ Map map =newHashMap();for(int i =1; i <= rsmd.getColumnCount(); i++){ map.put(rsmd.getColumnName(i), rs.getObject(i));} list.add(map);}
    }catch( Exception e ){ e.printStackTrace();}finally{if( rs !=null) rs.close();closeConnection(conn);}return list;
    }}


    使用示例:
    // 1.對于insert, update, delete語句
    int count = DbWrapper.executeUpdate(sql);
    // 2.對于selete語句 java.util.List list = DbWrapper.executeQuery(sql);
    // 方法一:按名字取值,注意大小寫是嚴格區分的for(int i =0; i < list.size(); i++){ java.util.Map map =(java.util.Map)list.get(i); out.println(mag.get("column_name").toString());}
    // 方法二:遍歷取值for(int i =0; i < list.size(); i++){ java.util.Map map =(java.util.Map)list.get(i);
    for(java.util.Iterator it = map.keySet().iterator(); it.hasNext();){ String column_name = it.next().toString());

    // 取值時注意null判斷 out.println(column_name +" = "+ map.get(column_name) ==null?"": map.get(column_name).toString());}}

    posted on 2006-04-26 16:02 都市淘沙者 閱讀(282) 評論(1)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    評論

    # re: 將數據庫操作封裝到Javabean [未登錄] 2008-03-28 22:11 小蝦米

    有這么復雜嗎?看的眼花繚亂。新建一個BEAN類。然后在連接數據庫類中NEW一個BEAN對象。在SET下返回!  回復  更多評論   

    主站蜘蛛池模板: 亚洲日本成本人观看| 亚洲美女人黄网成人女| 24小时免费直播在线观看| 成人黄动漫画免费网站视频| 久久精品一本到99热免费| 最近免费中文字幕中文高清| 无码中文字幕av免费放dvd| 1000部拍拍拍18勿入免费视频软件| 日韩电影免费在线观看| 最近免费字幕中文大全视频| 男女作爱在线播放免费网站| 免费观看激色视频网站(性色)| 在线观看免费污视频| 大胆亚洲人体视频| 亚洲成人中文字幕| 亚洲一区AV无码少妇电影| 日韩免费在线中文字幕| 四虎精品成人免费视频| 国产精成人品日日拍夜夜免费| 久久精品女人天堂AV免费观看| 亚洲国产成人a精品不卡在线| 免费A级毛片无码久久版| 久久久久久久尹人综合网亚洲| 日韩亚洲欧洲在线com91tv| 亚洲国产乱码最新视频| 夜夜爽妓女8888视频免费观看| 免费A级毛片无码A∨| 日韩人妻无码免费视频一区二区三区| 亚洲欭美日韩颜射在线二| 亚洲一区二区三区高清不卡 | 亚洲精品美女网站| 一个人免费播放在线视频看片| av片在线观看永久免费| 2021国内精品久久久久精免费| 1000部免费啪啪十八未年禁止观看 | 免费在线观看一区| 国产免费伦精品一区二区三区 | 18成禁人视频免费网站| 亚洲福利精品电影在线观看| 2022中文字字幕久亚洲| 亚洲喷奶水中文字幕电影 |