5.9 表關(guān)聯(lián)操作

2022-07-11 10:21 更新

JFinal ActiveRecord 天然支持表關(guān)聯(lián)操作,并不需要學(xué)習(xí)新的東西,此為無招勝有招。表 關(guān)聯(lián)操作主要有兩種方式:一是直接使用 sql 得到關(guān)聯(lián)數(shù)據(jù);二是在 Model 中添加獲取關(guān)聯(lián)數(shù)據(jù)的方法。


假定現(xiàn)有兩張數(shù)據(jù)庫表:user、blog,并且 user 到 blog 是一對(duì)多關(guān)系,blog 表中使用 user_id關(guān)聯(lián)到 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 = Blog.dao.findFirst(sql, 123); String name = blog.getStr("user_name");
}
以下代碼演示第二種方式在 Blog 中獲取相關(guān)聯(lián)的 User 以及在 User 中獲取相關(guān)聯(lián)的Blog:

public class Blog extends Model<Blog>{
public static final Blog dao = new Blog();
 
public
User getUser() {
return User.dao.findById(get("user_id"));
}
}
public class User extends Model<User>{
public static final User dao = new User();
 
public
List<Blog> getBlogs() {
return Blog.dao.find("select * from blog where user_id=?", get("id"));
}
}

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)