테이블 연관 작업
JFinal ActiveRecord는 테이블 연관 작업을 자연스럽게 지원하므로 새로운 것을 배울 필요가 없습니다. 테이블 연관 작업에는 크게 두 가지 방법이 있습니다. 하나는 SQL을 직접 사용하여 연관 데이터를 얻는 방법이고, 다른 하나는 모델에서 연관 데이터를 얻는 방법을 추가하는 것입니다.
사용자와 블로그라는 두 개의 기존 데이터베이스 테이블이 있고 사용자와 블로그가 일대다 관계에 있다고 가정합니다. 블로그 테이블은 user_id를 사용하여 사용자 테이블과 연결됩니다. 다음 코드는 user_name을 가져오는 첫 번째 방법을 사용하는 방법을 보여줍니다.
public void 관계() {
String sql = "select b.*, u.user_name from blog b inner Join user u on b.user_id = u.id 여기서 b.id=?";
Blog 블로그 = Blog.dao.findFirst(sql, 123); 문자열 이름 = blog.getStr("user_name");
}
String sql = "select b.*, u.user_name from blog b inner Join user u on b.user_id = u.id 여기서 b.id=?";
Blog 블로그 = Blog.dao.findFirst(sql, 123); 문자열 이름 = blog.getStr("user_name");
}
The 다음 코드는 Blog에서 연결된 User를 가져오고 User에서 연결된 Blog를 가져오는 두 번째 방법을 보여줍니다.
public class Blog는 Model<Blog>{
public static final Blog dao = new Blog();
public User getUser () {
return User.dao.findById(get("user_id"));
}
}
public class User 확장 Model{
public static final User dao = new User();
public List< 블로그> getBlogs() {
return Blog.dao.find("user_id=?", get("id")인 블로그에서 * 선택);
}
}
public static final Blog dao = new Blog();
public User getUser () {
return User.dao.findById(get("user_id"));
}
}
public class User 확장 Model
public static final User dao = new User();
public List< 블로그> getBlogs() {
return Blog.dao.find("user_id=?", get("id")인 블로그에서 * 선택);
}
}