JFinal獨創的Db+Record模式
Db 類及其配套的 Record 類,提供了在 Model 類之外更爲豐富的數據庫操作功能。使用Db 與Record 類時,無需對數據庫表進行映射,Record 相當於一個通用的 Model。以下爲Db + Record 模式的一些常見用法:
<span style="font-size:18px;">// 創建name屬性爲James,age屬性爲25的record對象並添加到數據庫
Record user = new Record().set("name", "James").set("age", 25);
Db.save("user", user);
// 刪除id值爲25的user表中的記錄
Db.deleteById("user", 25);
// 查詢id值爲25的Record將其name屬性改爲James並更新到數據庫
user = Db.findById("user", 25).set("name", "James");
Db.update("user", user);
// 查詢id值爲25的user, 且僅僅取name與age兩個字段的值
user = Db.findById("user", 25, "name, age");
// 獲取user的name屬性
String userName = user.getStr("name");
// 獲取user的age屬性
Integer userAge = user.getInt("age");
// 查詢所有年齡大於18歲的user
List<Record> users = Db.find("select * from user where age > 18");
// 分頁查詢年齡大於18的user,當前頁號爲1,每頁10個user
Page<Record> userPage = Db.paginate(1, 10, "select *", "from user where
age > ?", 18); </span>
以下爲事物處理:
<span style="font-size:18px;">boolean succeed = Db.tx(new IAtom(){
public boolean run() throws SQLException {
int count = Db.update("update account set cash = cash - ? where
id = ?", 100, 123);
int count2 = Db.update("update account set cash = cash + ? where
id = ?", 100, 456);
return count == 1 && count2 == 1;
}}); </span>