JFinal 独自の Db + Record モード
Db クラスとそれをサポートする Record クラスは、Model クラスに加えて、より豊富なデータベース操作機能を提供します。 Db クラスと Record クラスを使用する場合、Record は一般的な Model に相当します。以下は、Db + Record モードの一般的な使用法です:
// name 属性を James、age 属性を 25 としてレコード オブジェクトを作成し、データベースに追加します
Record user = new Record().set("name ", "James ").set("age", 25); Db.save("user", user);
//ID 値 25 を持つユーザーテーブルのレコードを削除します
Db.deleteById("user ", 25);
// ID 値 25 のレコードをクエリし、その name 属性を James に変更してデータベースに更新します user = Db.findById("user", 25).set("name", "James "); Db.update( "user", user);
//ユーザーの名前属性を取得します
String userName = user.getStr("name");
//ユーザーの年齢属性を取得します
Integer userAge = user.getInt("age");
// 18 歳以上のすべてのユーザーをクエリします
List<Record> users = Db.find("select * from user where age > 18");
/ / ページングで 18 歳以上のユーザーをクエリします。現在のページの数は 1、ページあたり 10 人のユーザーです
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 を持つユーザーテーブルのレコードを削除します
Db.deleteById("user ", 25);
// ID 値 25 のレコードをクエリし、その name 属性を James に変更してデータベースに更新します user = Db.findById("user", 25).set("name", "James "); Db.update( "user", user);
//ユーザーの名前属性を取得します
String userName = user.getStr("name");
//ユーザーの年齢属性を取得します
Integer userAge = user.getInt("age");
// 18 歳以上のすべてのユーザーをクエリします
List<Record> users = Db.find("select * from user where age > 18");
/ / ページングで 18 歳以上のユーザーをクエリします。現在のページの数は 1、ページあたり 10 人のユーザーです
Page<Record> userPage = Db.paginate(1, 10, "select *", "from user where age > ; ?", 18);
以下はトランザクション処理の例です:
boolean success = Db.tx(new IAtom(){
public boolean run() throws SQLException {
int count = Db.update ("アカウント セット キャッシュ = キャッシュ - ? を更新します。id = ?", 100, 123);
int count2 = Db.update("アカウント セット キャッシュ = キャッシュ + ? を更新します。id = ?", 100, 456);
return count == 1 && count2 == 1;
}});
public boolean run() throws SQLException {
int count = Db.update ("アカウント セット キャッシュ = キャッシュ - ? を更新します。id = ?", 100, 123);
int count2 = Db.update("アカウント セット キャッシュ = キャッシュ + ? を更新します。id = ?", 100, 456);
return count == 1 && count2 == 1;
}});
上記 2 つのデータベース更新操作は 1 つのトランザクションで実行されます。実行中に例外が発生した場合、または invoke() メソッドが false を返した場合、トランザクションは次のようになります。自動的にロールバックされます。