美文网首页
Jfinal学习笔记-Model操作

Jfinal学习笔记-Model操作

作者: MJ镜中人 | 来源:发表于2022-04-26 17:42 被阅读0次

    Jfinal学习笔记

    数据模型结构

    1、Model(Jfinal) - BaseModel - BaseClassName - ClassName

    1.1、Model 虚拟类,Jfinal 提供的虚拟的需要继承自 Model 类的泛型类。
    public abstract class Model<M extends Model> implements Serializable
    dao() 方法返回继承此类的 M 类实例,填充了 attrs 属性的实例类。
    基于模型,提供了对当前模型属性操作的 put() 和 get() 和 remove() 方法对属性填充获取和删除操作。提供了 toJson() 方法属性 json 化。
    基于模型,提供了 save() update() delete() 方法对当前模型实例增删改操作。
    基于 sql,提供了 find() paginate() 查询和分页查询系列方法。

    1.2、BaseModel 虚拟类,增强 Model 批量操作的虚拟类。泛型向下传递。
    public abstract class BaseModel<M extends Model<M>> extends Model<M>
    重写了 _getConfig() 配置方法。
    增加了 batch() 系列的批量删除和批量更新方法。

    1.3、BaseClassName 虚拟类,继承了BaseModel 的虚拟类,泛型向下传递。
    public abstract class BaseStuClassRecord<M extends BaseStuClassRecord<M>> extends BaseModel<M> implements IBean
    添加了数据字段的 set() get() 系列方法,使数据库字段对象化。

    2、PageKit 分页处理工具,对分页查询的 sql 和查询条件解析处理。

    2.1、paginate() - doPaginate() (Jfinal) - doPaginateByFullSql() (Jfinal) 分页方法调用过程。
    2.2、paginate() - sql() - getPageNumber() - getPageSize() 调用分页方法前的 sql 解析。
    2.3、sql() - select() - from() - where() - group() - order() 在sql() 方法中对 sql 语句的每一部分进行解析。
    首先通过前缀判断出为那段解析,通过 put() 方法填充不同的集合中,通过对应的方法解析。
    在 where() 方法中对每个键值对 key 值的前缀后缀循环解析,在具体解析根据前缀的不同解析出等于、不等、大于、大于等不同的判断条件。

    相关文章

      网友评论

          本文标题:Jfinal学习笔记-Model操作

          本文链接:https://www.haomeiwen.com/subject/egkhyrtx.html