学习JFinal

news2024/12/23 13:13:59

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>的实例,其中UserModel是一个JFinal的模型类,代表了数据库中的用户表。

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

 批量新增:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1617484.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

monkey测试详解

一、monkey测试的定义 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样,不知道程序的任何用户交互方面的知识,就对界面进行无目的、乱点乱按…

MATLAB基于图像特征的火灾检测

实验目标 基于图像特征的火灾检测 实验环境 Windows电脑、MATLAB R2020a 实验内容 1.读取图像&#xff0c;彩色图像的灰度化处理&#xff0c;进行边缘检测&#xff0c;实现对火焰的检测。 2.对两幅RGB图像进行火焰特征提取实验 3.对比分析边缘检测算法处理结果和基于图像…

离散型制造行业智能工厂解决方案,助力国家新智产业升级

离散型制造行业智能工厂标准解决方案 离散型制造行业的智能工厂解决方案是推动国家智能制造产业升级的关键。 1. 集中优势资源&#xff1a;实施攻关计划&#xff0c;瞄准关键核心技术和重点产业进行定向突破&#xff0c;特别是在集成电路(IC)、AI、生物医药等领域。2. 国家创…

华为外派伊拉克,一天补助6000元

大家好&#xff0c;我是YUAN哥&#xff01; 最近有朋友询问关于华为外派伊拉克的补助情况&#xff0c;听说一天能拿到6000元&#xff0c;这听起来相当诱人&#xff0c;但真实性有待考证。 据我所知&#xff0c;华为对艰苦地区的外派员工确实有补助&#xff0c;但最高一天是100美…

关于pdf.js中文本坐标尺寸的使用

一个电子教材项目中有这样一个需求&#xff1a; 用户向网站上传一个PDF书籍后&#xff0c;网站可以对PDF书籍进行解析&#xff0c;并支持用户对PDF书籍的每一页做一些操作&#xff0c;比如&#xff1a;为英语课本的单词和句子添加音频热区。因为热区数量很多&#xff0c;所以&a…

C语言进阶课程学习记录- 函数与宏分析

C语言进阶课程学习记录- 函数与宏分析 实验-宏和函数实验-宏的副作用实验-宏的妙用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验-宏和函数 #include <stdio.h>#define RESET(p, len) …

详解Mixtral-8x7B背后的MoE!

高端的模型往往只需最朴素的发布方式。 这个来自欧洲的大模型团队在12月8日以一条磁力链接的方式发布了Mixtral-8x7B,这是一种具有开放权重的**「高质量稀疏专家混合模型」**(SMoE)。 该模型在大多数基准测试中都优于Llama2-70B,相比之下推理速度快了6倍,同时在大多数标准基…

Web3 游戏周报(4.14-4.20)

【4.14-20】Web3 游戏行业动态&#xff1a; 前迪士尼老板与漫威、星球大战人才携手推出 Web3 游戏工作室 加密集换式卡牌游戏《Fantasy》在 Blast 主网上线 加密游戏工作室 Avalon 融资 1,000 万美元&#xff0c;Hashed 领投 Faraway 收购 Yuga Labs 旗下两大游戏 IP“HV-MT…

JSON Web Token 入门

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案&#xff0c;本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&…

以赛促学、生态共建 | 软通动力子公司鸿湖万联成功举办基于x86架构的OpenHarmony应用生态挑战赛

近日&#xff0c;由开放原子开源基金会、央视网、江苏省工业和信息化厅、无锡市人民政府、江苏软件产业人才发展基金会、苏州工业园区、无锡高新区等共同承办&#xff0c;鸿湖万联参与共建的“基于x86架构的OpenHarmony应用生态挑战赛”决赛路演在无锡圆满落幕。本次挑战赛历时…

贪心(贪婪)算法

主要思想 贪心算法的思想主要可以概括为“总是做出当前看起来最优的选择”&#xff0c;也就是不从整体上进行考虑&#xff0c;所得到的答案是某种意义上的局部最优解&#xff0c;不一定是整体最优解。 贪心算法没有固定算法框架&#xff0c;算法设计的关键是贪心策略的选择。…

统一SQL 支持Oracle CHAR和VARCHAR2 (size BYTE|CHAR)转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;Postgresql&#xff0c;TDSQL-MySQL&#xff0c;达梦8&#xff0c;LightDB-Oracle 操作目标 在Oracle中的CHAR和VARCHAR2数据类型&…

以始为终梳理前端的发展方向

嗨&#xff0c;我是小路。一位努力向上生长的90后前端开发工程师。 以下是正文&#xff1a; 前段时间朋友和我吐槽&#xff1a;“做了多年的PHP开发&#xff0c;突然被离职&#xff0c;然后去招聘市场一看&#xff0c;发现PHP已经没有市场了。偶尔会出现一两个相关的职位&#…

AI一键生成的解说短剧,如何导出工程文件到剪映二次编辑?

用鬼手剪辑可以一键生成解说视频 鬼手剪辑的一键生成解说视频是一种快速简便的AI解说工具&#xff0c;可以帮助用户将短视频转换为解说视频。该工具通过语音识别、自然语言处理和视频剪辑等技术&#xff0c;自动生成解说词并完成视频剪辑。 一键生成解说操作教程 一键生成解说…

PCB的层叠结构

有pcb的用处&#xff1a; 是为了防止线乱和占面积 PCB单层板&#xff1a;如果有人触电了&#xff0c;是算设计师没有设计好&#xff0c;还是操作员没有操作好&#xff0c;没有进行责任划分 防止触电&#xff0c;加绿皮 偶数版子&#xff1a;上下冲压对称性更好&#xff0c;不…

基于灰狼算法的综合能源系统多时间尺度优化调度(附matlab程序)

0.代码链接 基于灰狼算法的综合能源系统多时间尺度优化调度&#xff08;MATLAB程序&#xff09;资源-CSDN文库 1.简述 对于冷、热、电联供综合能源系统优化问题&#xff0c;为了提高可再生能源利用率&#xff0c;故以弃风、弃光量最小和综合能源系统运行经济性为优化目标&…

数据结构之顺序表的实现(C语言版)

Hello, 大家好&#xff0c;我是一代&#xff0c;今天给大家带来有关顺序表的有关知识 所属专栏&#xff1a;数据结构 创作不易&#xff0c;望得到各位佬们的互三呦 一.前言 1.首先在讲顺序表之前我们先来了解什么是数据结构 数据结构是由“数据”和“结构”两词组合⽽来。 什…

个人音乐播放网站项目(SpringBoot+Linux部署上线)

在做完第一个博客系统项目以后&#xff0c;接着做下一个项目&#xff1a;音乐播放网站项目&#xff0c;此项目应用的技术栈和第一个项目是差不多的&#xff0c;即算是学完SSM等知识以后的两个入门级Java开发项目吧。 此项目包含的核心功能有&#xff1a; 一、登录、注册、退出…

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数**1.1 什么是构造函数****1.2 构造函数的特性**1.3 总结 二&#xff0c;析构函数**2.1 什么是析构函数****2.2 析构函数的特性****2.3 总结** 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并…

Nginx 四层和七层代理

四层&#xff1a;通过报文中的目标地址和端口&#xff0c;加上负载均衡设备设置的服务器选择方式&#xff0c;决定最终选择的内部服务器&#xff0c;使用tcp、udp协议。 七层&#xff1a;"内容交换"&#xff0c;通过报文中真正有意义的应用层内容&#xff0c;加上负…