JFinal 獨創 Db + Record 模式
Db 類別及其配套的 Record 類,提供了在 Model 類別之外更為豐富的資料庫操作功能。使用 Db 與 Record 類別時,無需對資料庫表進行映射,Record 相當於一個通用的 Model。以下為 Db + Record 模式的一些常見用法:
// 建立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);
// 取得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);
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);
// 取得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);
以下為事務處理示例:
boolean succeed = Db.tx(new IAtom(){
public boolean run() throws SQLException {
int count = Db. = ?", 100, 123);
int count2 = Db.update("update account set cash = cash + where = 1;
}});
public boolean run() throws SQLException {
int count = Db. = ?", 100, 123);
int count2 = Db.update("update account set cash = cash + where = 1;
}});