opérations d'association de tables
JFinal ActiveRecord prend naturellement en charge les opérations d'association de tables, et il n'y a pas besoin d'apprendre de nouvelles choses. Il n'y a pas d'astuce pour gagner. Il existe deux méthodes principales pour les opérations d'association de tables : l'une consiste à utiliser directement SQL pour obtenir les données associées, l'autre consiste à ajouter une méthode pour obtenir les données associées dans le modèle ;
Supposons qu'il existe deux tables de base de données : user et blog, et qu'il existe une relation un-à-plusieurs entre l'utilisateur et le blog. La table blog est liée à la table user en utilisant user_id. Le code suivant montre l'utilisation de la première méthode pour obtenir le nom d'utilisateur :
String sql = "select b.*, u.user_name from blog b inner join user u on b.user_id = u.id où b.id=?";
Blog blog = Blog.dao.findFirst(sql, 123); String name = blog.getStr("user_name");
}
Le code suivant Démontrez la deuxième façon d'obtenir l'utilisateur associé dans le blog et d'obtenir le blog associé dans l'utilisateur :
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 which user_id=?", get("id"));
}
}