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

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

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

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

      但是很多網友在封裝時,卻喜歡返回結果集(ResultSet對象),那么這個封裝就沒有意義了。

      1. 又是直接操作核心數據庫類,跟封裝前幾乎沒什么變化。

      2. 結果集總是依賴于它使用的連接(Connection)對象。因此當連接對象在方法內被關閉后,你返回的ResultSet就沒有用了。

      如果真的要獲得查詢數據庫的結果集,就把結果集對象內的所有數據,轉儲到以Map為元素的List對象內。

      當然,這種方式,不能適應大數據量的查詢,不過如果真的碰到大數據量的查詢,那用什么封裝都不好,還是得直接數據庫操作. :)))

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

      DbWrapper.java

      import java.sql.*;

      import java.util.*;

      public class DbWrapper

      {

      // 定義連接池對象為靜態變量,將一直存在,直到工作目錄關閉。

      private static DataSource ds = null;

      // 1.用連接池的方式獲得連接

      // 如果不是做多數據庫程序,推薦使用此方法

      // 相關內容:在tomcat管理界面配置連接池

      public static Connection openConnection() throws Exception

      {

      // 只需要初始化1次

      if ( ds == null )

      {

      Context initContext = new InitialContext();

      Context envContext = (Context) initContext.lookup("java:/comp/env");

      DataSource ds = (DataSource) envContext.lookup("jdbc/MyDataSource");

      }

      return ds.getConnection();

      }

      // 2.用jdbc驅動獲得連接

      // 相關內容:JSP數據庫連接大全

      public static Connection openConnection(

      String driver,

      String url,

      String username,

      String password)

      throws Exception

      {

      Class.forName(driver).newInstance();

      return DriverManager.getConnection(url, username, password);

      }

      public static void closeConnection(Connection conn) throws Exception

      {

      if ( conn != null )

      {

      conn.close();

      }

      }

      public static int executeUpdate(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;

      }

      public static List executeQuery(String sql) throws Exception

      {

      List list = new ArrayList();

      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 = new HashMap();

      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 2008-05-07 18:52 礦礦 閱讀(143) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 水蜜桃视频在线观看免费播放高清 | 免费无码又爽又刺激一高潮| 免费国产a国产片高清网站| 亚洲mv国产精品mv日本mv| 99久热只有精品视频免费看| 不卡一卡二卡三亚洲| 国产精品免费观看视频| 亚洲精品视频在线观看你懂的| 男男gay做爽爽的视频免费| 免费在线视频一区| 人人公开免费超级碰碰碰视频| 五月婷婷亚洲综合| 国产V片在线播放免费无码 | 国精产品一区一区三区免费视频 | 国产一级淫片a免费播放口之| 亚洲最大激情中文字幕| 国产精品免费久久久久电影网| 久久影视综合亚洲| 免费人成在线观看网站| 亚洲同性男gay网站在线观看| 最近中文字幕mv免费高清视频7| 亚洲日韩精品国产一区二区三区| 国产老女人精品免费视频| 国产亚洲精品2021自在线| 狠狠亚洲狠狠欧洲2019| 免费国产成人午夜在线观看| 亚洲一区二区三区高清| 免费中文熟妇在线影片| 阿v视频免费在线观看| 亚洲色精品88色婷婷七月丁香| 久久久久久免费一区二区三区 | 日本免费网站观看| 一区二区三区免费高清视频| 最近免费中文字幕视频高清在线看 | 国产免费av片在线看| 粉色视频免费入口| 国产精品国产亚洲精品看不卡| 四虎精品视频在线永久免费观看| 亚洲精品国产av成拍色拍| 亚洲精品乱码久久久久久久久久久久 | 亚洲精品视频免费观看|