国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

Java 數據對象(JDO)介紹(四)

2019-11-18 10:47:59
字體:
來源:轉載
供稿:網友

  Kodo JDO 規范
  Kodo JDO包含自己的類來創建數據庫模型和增強類。
  
  模型生成工具被用于揣安數據庫模型,這個模型將被用于存儲JDO對象實例。工具正式支持的數據庫包括:
  
  DB2
  InstantDB
  SQLServer
  MySQL
  Oracle
  PostgreSQL
  其他數據庫的JDBC驅動可以通過擴展代碼被加入。具體內容參考Kodo JDO的文檔。
  
  模型創建工具要依靠于一個package.jdo文件,這個文件被用于定義JDO實例類的一些細節。下面的文件被用于這個例子。可以查看Kodo JDO的文檔來獲得文件格式和概念的具體信息。
  
    
    
      
        
        
        
        
        
          
            
          

        

      

    
  
  
  schematool.bat文件被用來運行模型創建工具。.jdo文件必須作為一個參數放到命令行中。
  
  schematool.bat package.jdo
  
  一旦模型被創建,域對象的類文件必須被增強以實現PersistenceCapable 接口。jdoc.bat文件被用于運行類增強器。jdoc.bat批處理文件也需要package.jdo文件作為參數方到命令行中。
  
  jdoc.bat package.jdo
  
  上面演示的模型創建和類增強是Kodo JDO實現特有的,它并不是JDO規范的一部分。其他的廠商也許有他們自己的方法來完成以上部分,具體實現要參考廠商的文檔。
  
  向數據庫增加數據
  由于數據庫已經配置完成并且我們的域對象也已經設計好了,代碼也通過增強實現了PersistenceCapable接口,現在那些類的可以被實例化并添加到數據庫中了。
  
  下面的類將實例化一個Fleet,給他添加幾條數據然后把它存儲到數據庫中。
  
    /**
     * SeedDatabase.java
     */
    package com.ociweb.jdodemo;
      // 廠商實現的PersistenceManagerFactory
    import com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory;
      import javax.jdo.PersistenceManager;
    import javax.jdo.Transaction;
      public class SeedDatabase {
        public static void main(String[] args)
   {
        // 創建一個vehicles的fleet...
        Fleet fleet = new Fleet();
        fleet.addVehicle(new Bicycle("Schwinn"));
        fleet.addVehicle(new Bicycle("Giant"));
        fleet.addVehicle(new MotorVehicle(4, new Engine(8)));
        fleet.addVehicle(new MotorVehicle(2, new Engine(4)));
        fleet.addVehicle(new MotorVehicle(4, new Engine(4)));
          // 獲得的一個PersistenceManager...
        PersistenceManager pm =
            new JDBCPersistenceManagerFactory().getPersistenceManager();
          // 開始一個transaction...
        Transaction transaction = pm.currentTransaction();
        transaction.begin();
          // 存儲 fleet...
        pm.makePersistent(fleet);
          // 提交transaction...
        transaction.commit();
          // 關閉 manager...
        pm.close();
      }
    }  
  
  從數據庫中獲得數據
  下面的代碼從數據庫中獲得類的所有實例(包括子類的)并且把他們打引導控制臺。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁化县| 灵台县| 华坪县| 新绛县| 古丈县| 沈阳市| 得荣县| 浠水县| 保山市| 科尔| 石泉县| 会昌县| 浮梁县| 惠来县| 专栏| 柳林县| 霍州市| 舒兰市| 广昌县| 灵石县| 大方县| 武川县| 新泰市| 通道| 南阳市| 寿阳县| 宁德市| 台前县| 千阳县| 涿鹿县| 新巴尔虎右旗| 望都县| 克什克腾旗| 柳江县| 上蔡县| 靖州| 方山县| 宣城市| 拉萨市| 乐业县| 乌兰县|