亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2EE數據庫設計入門

2019-11-18 12:39:45
字體:
來源:轉載
供稿:網友

  在開發J2EE應用程序時,通常要找出應用程序中涉及到的各種信息,比如一個公司的產品目錄,或一個網站的用戶信息。我們會將這些信息放在數據庫里,然后分析這些數據的屬性和關系,再進行數據庫的邏輯設計,把各種信息用不同的表來存儲。
  例如,要開發一個原料信息查詢系統,可以創建下面兩個表分別表示原料和相應的生產商。
  table PRodUCtion (ID, Name, Weight,Maker,ProducerID, Price, Volume)
  table producer (ID, Name, Telephone, Address, Postcode)
  表production包含了ID、名稱、重量、生產人、生產者ID、價格、體積。表producer包含ID、生產者名、電話、地址、郵編。這兩個表通過生產者ID相關聯。
  數據庫類的設計
  數據庫相關類可以分成實體類(Entity Class)和會話類(session Class)。
  實體類對應于表記錄的封裝,也就是該類的一個實例對應于表中的一個記錄。而且,該類中的屬性和記錄中的字段是一一對應的。會話類對應于對表中所有記錄的操作,比如增加一條記錄、刪除一條記錄、查找記錄和更新一條記錄。
  通過使用這種設計模式,就可以使程序模塊化,便于開發和維護。
  在具體實現這種模式時,往往要根據具體的應用程序來選用不同的實現技術。在上面的模式中,我們很輕易就發現可以用EJB來實現。
  EJB提出來的目的是用于提供一種分布式組件系統的開發。假如應用程序是一個分布式的應用系統,使用EJB來實現能大大減輕編程的工作量。同時,通過使用EJB容器的一些高級特性,可以使應用程序更加可靠,擴展性也大大加強。從而,開發人員就不必關心一些底層技術,比如事務處理、安全等,而是把重點放在怎樣實現業務邏輯上。但是應該注重,假如開發的應用不是分布式的,那么采用EJB有可能大大降低系統的性能,因為EJB調用的開銷很大。
  在不使用EJB技術的情況下該如何實現上面介紹的這個模式呢?
  我們以剛才的開發產品信息查詢系統為例介紹實現方式。
  1.實體類的實現
  如前面講到的,實體類的每個實例與表中一個記錄對應。這樣,實體類的屬性應該和表的每個字段一一對應。必須注重的是,實體類的實例是每個記錄在內存中的對應,因此在程序中對實例的操作并不能馬上反應到數據庫的記錄中。
  在實體類中,只是對數據的包裝,因此,該類僅需要一些基本的方法,即setXX()和getXX()方法。
  下面是一個實體類,是對Production表的封裝。
  class Production{
  protected int  ID;
  protected String Name;
  protected String Weight;
  protected String Maker;
  protected int ProtectedID  
  protected double Price;
  protected int Volume;
  public void setID(int iID);
  public int getID();
  public void setName(String sName);
  public String getName();
  public void setWEIGHT(String sWEIGHT);
  public String getWEIGHT();
  public void set Maker(String sMaker);
  public String getMaker();
  public void setProtected ID(int iID);
  public int  getProtected ID();
  public void setPrice(double dPrice);
  public double getPrice();
  public void setVolume(int iVolume);
  public int getVolume();
  public Production(int iID, String sName, String sWEIGHT, int iprotected ID,
  double dPrice, int iVolume);
    };
  同樣也可以對表Producer進行封裝。
  2.會話類的實現
  會話類主要是對一個表進行處理。這些操作可以是在表中創建一條記錄、刪除一條記錄、更新一條記錄和查找一條記錄。這些操作的結果是將表中的記錄和內存中的實體類的實例對應起來,或將實例與表中的記錄對應起來。
  我們可以看一下對Production表的封裝:
  class ProductionTable{
  void Add(Production production);
  void Delete(Production production);
  void Update(Production production);
  Collection findbyID(int iID);
  Collection findbyXXXX(XX,XX);
  Collection findbyPulisherName(String sProducerName);
    };
  上面在類的申明中,Add()用于將內存中的一個Production實例映射到數據庫中。Delete()用于刪除數據庫中的某一個記錄。Update()用于更新表中的一個記錄。而findbyXXXX()則對應于Select語句。
  上面只是簡單的介紹了怎樣實現實體類和會話類,在具體的應用中,還要考慮到數據庫操作的一致性。
  事務處理
  為了確保對數據操作的完整和一致,在程序設計時要充分考慮到事務處理方面的問題。
  1.JDBC中怎樣將多個SQL語句組合成一個事務。
  在JDBC中,當打開一個連接對象Connection,缺省是auto-commit模式,每個SQL語句都被當作一個事務,即每次執行一個語句,都會自動得到事務確認。為了能將多個SQL語句組合成一個事務,要將auto-commit模式屏蔽掉。
  在auto-commit模式屏蔽掉之后,假如不調用commit()方法,SQL語句不會得到事務確認。在commit()方法調用之后的所有SQL會在方法commit()再次調用時得到確認。
  
  下面的代碼是一個示范:
  
  con.setAutoCommit(false);
   PreparedStatement updateSales=con.
  prepareStatement("UPDATE
   COFFES SET SALES=? WHERE
   COF_NAME LIKE ?");
   updateSales.setInt(1,50);
   updateSales.setString
  (2,"Colombian");
   updateSales.executeUpdate();
   PreparedStatement updateTotal=con.
  prepareStatement("UPDATE COFFEES SET TOTAL =TOTAL+ ? WHERE COD_NAME LIKE ?");
   updateTotal.setInt(1,50);
   updateTotal.setString(2,"Colo mbian");
   updateTotal.executeUpdate();
   con.commit(0;
   con.setAutoCommit(true);
  另外,在J2EE中,程序里可以使用JTA來調用底層的JTS(java Transaction Service)來處理分布式的事務處理。另外,假如使用EJB,可以通過在描述文件中指定Transaction的屬性來實現。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品福利在线观看| 国产在线观看一区二区三区| xxx欧美精品| 91豆花精品一区| 成人久久久久久久| 51午夜精品视频| 成人免费观看49www在线观看| 精品国产一区二区三区久久狼5月| 美日韩精品免费观看视频| 国产精品久久久久久搜索| 国产日韩亚洲欧美| 欧美丝袜一区二区| 亚洲香蕉成人av网站在线观看| 欧美中文字幕精品| 97超级碰在线看视频免费在线看| 国内精品久久久久久久| 久久伊人免费视频| 欧美在线亚洲一区| 亚洲精品中文字幕有码专区| 黑人极品videos精品欧美裸| 久久国产精品久久久久久久久久| 国产精品影院在线观看| 亚洲一二在线观看| 久久久久999| 亚洲老头老太hd| 91亚洲精华国产精华| 欧美限制级电影在线观看| 久久久国产精彩视频美女艺术照福利| 亚洲色图35p| 91性高湖久久久久久久久_久久99| 国产视频自拍一区| 91成人福利在线| 91久久久久久国产精品| 亚洲xxx自由成熟| 欧美日韩免费在线观看| 78色国产精品| 国产精品av免费在线观看| 狠狠久久亚洲欧美专区| 欧美精品在线第一页| 国产成人精品av| 国产精品视频不卡| 亚洲午夜未满十八勿入免费观看全集| 亚洲电影免费观看高清| 欧美多人乱p欧美4p久久| 久久精品中文字幕一区| 欧美日韩中文字幕| 国产成人精品久久二区二区91| 狠狠综合久久av一区二区小说| 国产日韩欧美在线看| 国产suv精品一区二区| 欧美激情一区二区久久久| 亚洲欧美成人网| 国产91九色视频| 亚洲国产精品电影在线观看| 国产午夜精品美女视频明星a级| 伊人伊成久久人综合网站| 日本午夜精品理论片a级appf发布| 国产免费一区二区三区香蕉精| 国产精品电影网| 日韩免费观看高清| 久久久欧美一区二区| 国外日韩电影在线观看| 日韩高清av一区二区三区| 在线视频亚洲欧美| 日韩亚洲欧美中文在线| 亚洲精品99久久久久| 欧美激情免费观看| 亚洲第一国产精品| 日韩在线视频中文字幕| 奇米成人av国产一区二区三区| 久久香蕉国产线看观看av| 国产ts一区二区| 亚洲精品乱码久久久久久金桔影视| 国产精品av在线播放| 隔壁老王国产在线精品| 国产精品爽爽ⅴa在线观看| 亚洲肉体裸体xxxx137| 操91在线视频| 国产精品福利久久久| 国产精品国产亚洲伊人久久| 欧美日韩在线影院| 九色成人免费视频| 久久久久久噜噜噜久久久精品| 亚洲成人精品在线| 国产成人一区二区| 国产网站欧美日韩免费精品在线观看| 性视频1819p久久| 久久久久久中文字幕| 91av视频在线播放| 久久久久国产精品一区| 美日韩精品免费视频| 夜夜狂射影院欧美极品| 国产精品中文字幕在线| 国产精品久久久久99| 亚洲美女免费精品视频在线观看| 久久久亚洲国产| 欧日韩在线观看| 日日摸夜夜添一区| 这里只有精品在线观看| 欧美另类精品xxxx孕妇| 九九视频直播综合网| 国产欧美日韩亚洲精品| 国产欧美最新羞羞视频在线观看| 一区二区三区动漫| 久久久噜噜噜久噜久久| 亚洲最大成人在线| 国产精品视频地址| 91精品视频在线免费观看| 在线视频精品一| 久久久久久久久久亚洲| 人妖精品videosex性欧美| 美女av一区二区| 欧美日韩亚洲国产一区| 亚洲国产日韩欧美在线动漫| 国产成人亚洲综合| 一本久久综合亚洲鲁鲁| 日韩人体视频一二区| 69视频在线播放| 亚洲伊人久久大香线蕉av| 国产成人精品电影久久久| 国产精品一二三视频| 日韩中文字幕在线免费观看| 中文字幕欧美日韩精品| 国产精品高潮呻吟视频| 亚洲在线视频观看| 全色精品综合影院| 精品久久中文字幕| 欧美老女人在线视频| 91精品啪aⅴ在线观看国产| 中文字幕亚洲欧美| 日韩欧美国产激情| 91精品国产91久久久久久不卡| 日韩精品极品在线观看| 亚洲jizzjizz日本少妇| 欧美精品www| 69久久夜色精品国产7777| 国内精品模特av私拍在线观看| 最新国产成人av网站网址麻豆| 精品亚洲男同gayvideo网站| 亚洲欧美激情另类校园| 亚洲乱码国产乱码精品精天堂| 欧美高清无遮挡| 欧美一级淫片丝袜脚交| 亚洲欧美精品在线| 欧美成人国产va精品日本一级| 91老司机在线| 欧美一二三视频| 夜夜嗨av色一区二区不卡| 欧美综合一区第一页| 这里只有精品在线观看| 国产精品一区二区久久国产| 91美女高潮出水| 欧美日韩亚洲系列| 欧美小视频在线观看| 性色av一区二区三区| 欧美精品一区三区| 热久久这里只有精品| 欧美视频在线观看 亚洲欧| 欧美电影免费观看高清完整| 91精品视频在线免费观看| 久久夜色精品国产欧美乱| 欧美性精品220| 日韩视频在线免费观看| 中文字幕精品在线|