模型


Model 是 ActiveRecord 中最重要的元件之一,它充當 MVC 模式中的 Model 部分。以下是

Model 定義範例程式碼:

public class User extends Model<User> {
public static final User dao = new #User();



'如果);
-

以上程式碼中的User 透過繼承Model,便立即擁有的眾多方便的操作資料庫的方法。在 User 中聲明的 dao 靜態物件是為了方便查詢操作而定義的,該物件並不是必須的。基於 ActiveRecord 的 Model 無需定義屬性,無需定義 getter、setter 方法,無需 XML 配置,無需 Annotation 配置, 大幅降低了程式碼量。

以下為Model 的一些常見用法:


// 建立name屬性為James,age屬性為25的User物件並新增至資料庫
new User(). set("name", "James").set("age", 25).save();
 
// 刪除id值為25的User User.dao.deleteById(25);
 
// 查詢id值為25的User將其name屬性改為James並更新至資料庫
User.dao.findByIdLoadColumns (25).set("name", "James").update() ;
 
// 查詢id值為25的user, 且僅取name與age兩個欄位的值
User user = User.dao.findByIdLoadColumns (25, "name, age");
 
// 取得user的name屬性
String userName = user.getStr("name");
 

// 取得user的age屬性
Integer userAge = user.getInt( "age");

 

// 查詢所有年齡大於18歲的userList<User> users = User.dao.find("select * from user where age>18"); // 分頁查詢年齡大於18的user,目前頁號為1,每頁10個userPage<User> userPage = User.dao.paginate(1, 10, "select *", .dao.paginate(1, 10, "select *", ." from user where age > ?", 18);

#################特別注意###:User 中定義的public static final User dao 物件是全域共享的,只能用於資料庫查詢, 不能用於資料承載物件。資料承載需要使用 new User().set(…)來實作。 ##########