• 学习JFinal


    1.五个配置类

    configConstants(配置):

    configRoute(路由):

    2.Controller层(控制器)

     访问流程:

     Action:

    getPara:

    参数说明:第一个参数是如果是字符串就是指定key名称,如果是索引就是从0开始索引。

    第二个参数就是如果前端没传参就是指定默认值

    getParaToInt(double,float):这个就是将参数强制转化成指定类型,第二个参数同上

    getBean和getModel: 

    第一个参数是指定映射的实体类,如果是getModel实体类必须Model的子类,并且做好数据库的映射,第二个参数是指定前端传来的前缀。

    getFile:

    第一个参数是指定文件的名称,第二个参数是指定文件的上传路径

    上传多个文件用getFiles

    3.JFinal操作数据库 

    配置数据源:

    在configPlugin中配置:

    注意配置之后一定要引入数据库的jar包到lib目录,解决乱码的话直接在url那里添加?characterEncoding=utf-8。

    实体类也要注意继承Model类,并且加载dao:

    简单的新增和查询:

    简单的增删改查:

     新增:

    删除:
     修改:

     查询:

    注意事项:

     高级查询:

     controller调用service:

    单个查询返回List:

    单个查询返回单个:

    动态拼接以及条件查询:

    使用stringBuffer:

    分页查询:

    1. `page.getTotalRow()`:返回的是查询结果的总行数,即数据库中符合查询条件的总数据项数。

    2. `page.getPageNumber()`:返回的是当前的页码数,表示用户正查看分页数据的哪一页。

    3. `page.getPageSize()`:返回的是页面大小,即每一页显示的记录数。

    4. `page.getTotalPage()`:返回的是总页数,基于总记录数和页面大小计算得出。

    5. `page.isFirstPage()`:返回的是一个布尔值,指示当前页是否是第一页。

    6. `page.isLastPage()`:返回的是一个布尔值,指示当前页是否是最后一页。

    7. `page.getList()`:返回的是当前页的数据列表,包含了类型为`T`的对象列表。

    按照条件的分页查询:

    使用缓存进行查询:

    配置xml文件:

    1. `name`:缓存的名字,可以根据名字来获取特定的缓存配置。

    2. `maxEntriesLocalHeap`:缓存中最大可以存储在本地堆中的对象数目。

    3. `eternal`:设置对象是否永恒存活。如果为`true`,则超时设置将被忽略。

    4. `overflowToDisk`:当堆内存中的缓存达到上限后,是否允许缓存数据溢写到磁盘。

    5. `timeToLiveSeconds`:设置缓存数据的存活时间,即对象被创建后多久后会过期。

    6. `timeToIdleSeconds`:设置缓存数据的空闲时间,即对象最后一次被访问后多久会过期。

    7. `diskPersistent`:是否在JVM重启过程中保持磁盘上的缓存数据持久化。

    8. `diskExpiryThreadIntervalSeconds`:磁盘失效线程运行的时间间隔,用来清理过期的磁盘存储。

    9. `memoryStoreEvictionPolicy`:内存存储的驱逐策略。例如,“LFU”代表最少使用策略,意味着最不经常使用的元素将被驱逐出缓存。

    配置缓存插件这是缓存本地的不是redis:

    查询的时候查询缓存:

    1. `"aabb"`:缓存名称,这应该是配置文件中定义的一个缓存的名字,用来指定哪个缓存策略将被用于当前的分页缓存。

    2. `"paginate"+page`:缓存键的前缀,这个键是用来在缓存中唯一标识存储的分页数据。通常包含页码信息来确保每个页码的数据缓存是唯一的。

    3. `page`:当前的页码,表示你想要查询的分页结果的页码。

    4. `pageSize`:页面大小,即每页显示的记录数。

    5. `select`:SELECT 部分的SQL语句,它用于指定要从数据库中选择哪些列。

    6. `sqlExceptSelect.toString()`:除了SELECT之外的SQL语句部分,包括FROM、WHERE、ORDER BY等。

    7. `params.toArray()`:SQL语句中占位符对应的参数数组,它用于在执行查询时传递参数。

    在进行增删改操作的时候删除缓存:

    Db实现批量操作:

     统计数量,可以根据类型去查询

    批量更新:

    量更新已存在的记录。列表中的每个模型对象通常代表了一个已存在的数据库记录,并且每个模型对象应当包含一个有效的ID,以便能够对应到数据库中的正确记录。

    1. userList:第一个参数是一个列表(List)对象,它包含了你想要批量更新的模型对象。在这个上下文中,userList应该是一个List的实例,其中UserModel是一个JFinal的模型类,代表了数据库中的用户表。

    2. userList.size():第二个参数指定了一次批量操作中的语句数量,这里使用userList.size()意味着你想要一次性更新列表中所有的用户模型对象。

     批量新增:

    • Db.batchSave:批量新增记录。列表中的每个模型对象将会被视为新的记录并插入到数据库中。这些模型对象通常不应包含ID,因为ID通常由数据库在插入时自动生成(除非数据库设计允许显式指定ID)。

  • 相关阅读:
    WPF 制作雷达扫描图
    对表白的看法
    Python - Matplot 绘制多图 直方图和折线图并存 共用 X 轴
    密码学系列之:PKI的证书格式表示X.509
    2023牛客OI赛前集训营-提高组(第二场) 出租
    PHP 7.1.13 版本,在使用过程中发现 浮点类型 数据经过 json_encode 之后会出现精度问题
    C++11标准模板(STL)- 算法(std::fill_n)
    MyBatis和Hibernate的区别
    MySQL 性能压测工具-sysbench,从入门到自定义测试项
    windows service 服务器安装 MySQL
  • 原文地址:https://blog.csdn.net/weixin_53693850/article/details/138028737