表關聯操作
JFinal ActiveRecord 自然支援表關聯操作,並不需要學習新的東西,此為無招勝有招。表 關聯操作主要有兩種方式:一是直接使用 sql 得到關聯資料;二是在 Model 中加入取得關聯資料的方法。
假定現有兩張資料庫表:user、blog,且 user 到 blog 是一對多關係,blog 表格中使用 user_id關聯到 user 資料表。下列程式碼示範使用第一種方式得到 user_name:
public void relation() {
String sql = "select b .*, u.user_name from blog b inner join user u on b.user_id=u.id where b.id=?";
Blog blog .getStr("user_name");
}
String sql = "select b .*, u.user_name from blog b inner join user u on b.user_id=u.id where b.id=?";
Blog blog .getStr("user_name");
}
#以下程式碼示範第二種方式在Blog 中取得相關聯的User 以及在User 中取得相關聯的Blog:
public class Blog extends Model<Blog>{
public static final Blog dao# = new Blog(); User getUser() {
return User.dao.findById(get("user_id"));
}
}
public class User extends Model<User>{
public static extends Model<User>{
public static final static final static final static final static dao = new User();
public List<Blog> getBlogs() {
return Blog.dao.find("select * from blogblogwhere ;
}
}
public static final Blog dao# = new Blog(); User getUser() {
return User.dao.findById(get("user_id"));
}
}
public class User extends Model<User>{
public static extends Model<User>{
public static final static final static final static final static dao = new User();
public List<Blog> getBlogs() {
return Blog.dao.find("select * from blogblogwhere ;
}
}