Jfinal之ActiveRecord(上)

  ActiveRecord 是JFinal 最核心的組成部分之一,通過ActiveRecord 來操作數據庫,將極大地減少代碼量,極大地提升開發效率。 
一、ActiveRecordPlugin 
  ActiveRecord是作爲JFinal的插件而存在的。需要在配置文件中配置。
<span style="font-size:18px;">public class DemoConfig extends JFinalConfig { 
public void configPlugin(Plugins me) { 
  C3p0Plugin  cp  =  new  C3p0Plugin("jdbc:mysql://localhost/db_name", 
"userName", "password"); 
  me.add(cp); 
  ActiveRecordPlugin arp = new ActiveRecordPlugin(cp); 
  me.add(arp); 
  arp.addMapping("user", User.class); 
  arp.addMapping("article", "article_id", Article.class); 
} 
} </span>

  C3p0Plugin 與ActiveRecordPlugin,前者是 c3p0數據源插件,後者是 ActiveRecrod支持插件。。ActiveReceord 中定義了 addMapping(String tableName, Class<? extends Model> modelClass>)方法,該方法建立了數據庫表名到 Model的映射關係。 
  另外,以上代碼中 arp.addMapping(“user”, User.class),表的主鍵名爲默認爲“id”,如果主鍵名稱爲 “user_id”則需要手動指定,如:arp.addMapping(“user”, “user_id”, User.class)。
二、Model 
  Model是ActiveRecord 中最重要的組件之一,它充當MVC 模式中的Model 部分。
  Model的常用用法:
<span style="font-size:18px;">// 創建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.findById(25).set("name", "James").update(); 
 
// 查詢id值爲25的user, 且僅僅取name與age兩個字段的值 
User user = User.dao.findById(25, "name, age"); 
 
// 獲取user的name屬性 
String userName = user.getStr("name"); 
 
// 獲取user的age屬性 
Integer userAge = user.getInt("age"); 
// 查詢所有年齡大於18歲的user 
List<User> users =  User.dao.find("select * from user where age>18"); 
 
// 分頁查詢年齡大於18的user,當前頁號爲1,每頁10個user 
Page<User> userPage = User.dao.paginate(1, 10,  "select *",  "from user 
where age > ?", 18); </span>
  Model無需定義屬性,無需定義 getter、setter 方法,無需 XML配置,極大的降低了代碼量。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章