JFinal의 오리지널 Db + 녹음 모드


Db 클래스와 이를 지원하는 Record 클래스는 Model 클래스 외에도 더욱 풍부한 데이터베이스 작업 기능을 제공합니다. Db 및 Record 클래스를 사용하는 경우 데이터베이스 테이블을 매핑할 필요가 없습니다. Record는 일반 모델과 동일합니다. 다음은 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인 레코드를 쿼리하고 이름 속성을 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세 이상의 모든 사용자 쿼리
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 ("계좌 세트 현금 업데이트 = 현금 - ? where id = ?", 100, 123);
int count2 = Db.update("계정 세트 현금 업데이트 = cash + ? where id = ?", 100, 456);
return count == 1 && count2 == 1;
}});

위의 두 데이터베이스 업데이트 작업은 하나의 트랜잭션에서 실행됩니다. 실행 중에 예외가 발생하거나 호출() 메서드가 false를 반환하면 트랜잭션이 수행됩니다. 자동으로 롤백됩니다.