Eva
Java粉絲募集中
  • 簡介
  • 我們的優勢
  • 最新消息
  • 下載與使用
  • 範例與說明
    • Eva Objects >
      • Bean類別定義
      • Entity型別定義
      • Struct型別定義
      • 建立Entity空白物件
      • 建立Entity修改物件
      • 建立Entity條件物件
      • 建立Struct值物件
    • Eva_ORM >
      • ORM程式主體
      • 使用條件物件執行操作
      • 執行更複雜條件的操作.
      • 分頁取回資料
      • 操作JDBC的參數
      • Array Property的操作
      • Collection Property的操作
      • 更複雜的Collection Property
      • 指定表格名稱
      • 新增資料庫Dialect
    • Eva_IOC >
      • IOC程式主體
      • AOP應用
    • Eva_Struct >
      • Struct範例
      • Bit Strcut範例
      • 指標範例
      • 於Eva_ORM中使用
    • Eva_Sort >
      • 依指定Properties排序
      • 部份排序
      • 優先排序部份
    • Eva_Cache >
      • hashing-based cache
      • 非hashing-based cache
  • API列表
  • 技術支援
    • 協助開發
  • 相關書籍

建立修改的物件.

若資料表己事先存在, 在下面中我們舉例了兩種建立修改用物件的方法. 在下面的 newModifications 方法中, 我們先去取得一個 ORMapper 物件, 再呼叫它的 newModification 方法去得到某個 Entity 類別的修改用物件, 這個修改用物件將來可以與其它條件物件配合使用, 透過該 ORMapper 物件的 update 方法, 將符合條件的資料, 其 id1 屬性所對應的欄位資料都改為 1 . (但可能也會產生例外, 因為 id1 為 Primary Key, 其欄位值在所有記錄中只能出現一次 )  

而在下面的 shallowCopy 方法中, 我們透過一個 ORMapper 物件的 shallowCopy 方法去得到一份取自資料庫中, 一個唯讀物件的拷貝 b. 這個拷貝的物件即是一個修改用的物件,  在我們將其 id1 的屬性值改為 2 後, 若再使用該 ORMapper 物件的 update 方法, 以新物件 b 為參數去更新資料, 則會使得資料庫中, id1 屬性的對映欄位值為 1 的記錄該欄位值改為 2, 同時新物件 b 也成為一個唯讀的物件.
package entities;

import com.logntw.eva.orm.DBConnectionProvider;
import com.logntw.eva.orm.ORMappers;
import com.logntw.eva.orm.defo.DefoORMappers;
import com.logntw.eva.orm.defo.conn.HSQLDB_1_8ConnectionProvider;

public class NewModifications
{
  public void newModifications() throws Exception 
  {
    DBConnectionProvider provider = new HSQLDB_1_8ConnectionProvider("databaseName");    
    ORMappers mappers = DefoORMappers.getInstance(provider);    
        
    A a = mappers.newModification(A.class);
    a.setId1(1);          
  }
  
  public void shallowCopy() throws Exception 
  {
    DBConnectionProvider provider = new HSQLDB_1_8ConnectionProvider("databaseName");    
    ORMappers mappers = DefoORMappers.getInstance(provider);    
          
    A a = mappers.getMapper(A.class).selectOne(false, "id1=?", 1);
    A a2 = mappers.shallowCopy(a);
    a2.setId1(2);      
  }
}
Powered by Create your own unique website with customizable templates.