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

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

 批量新增:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

13.Blender 界面介绍(下) 雕刻、纹理绘制及属性

界面介绍 1. 布局 物体的移动旋转和缩放等操作 2. 建模 里面就是有一些建模常用的功能 里面的功能对于做MMD来说不是必备的操作 3. 雕刻 使用里面的工具可以对物体本身进行修改 4. UV编辑 如果想要编辑UV贴图 将编辑模式改为纹理绘制 再点击右边的工具 如果进行编…

MySQL-----多表查询(一)

目录 一.多表关系&#xff1a; 1.1 一对多(多对一)&#xff1a; 1.2 多对多: 1.3 一对一: 二.多表查询概述&#xff1a; 三.连接查询&#xff1a; 3.1内连接&#xff1a; 3.2外连接&#xff1a; 3.3自连接查询&#xff1a; 3.4联合查询&#xff1a; 一.多表关系&…

告别单一密码,多因素身份认证带你进入安全新纪元!

文章目录 前言一、你知道什么&#xff1f;二、你拥有什么1.智能卡2.令牌 三、你是什么四、其他因素身份认证 前言 当我们探讨多因子/多因素身份认证时&#xff0c;我们可能会好奇这里的“因素”具体指的是什么&#xff1f;显然&#xff0c;用户名和密码是一种因素&#xff0c;…

iclientOpenlayer用uniapp开发移动端GIS应用设计及实现

GIS移动端应用是将地理信息系统&#xff08;GIS&#xff09;技术应用于移动设备&#xff08;如智能手机、平板电脑&#xff09;上&#xff0c;使用户能在户外或移动场景下访问、收集、分析和展示地理信息。以下是GIS移动端应用的一些关键特性和应用场景&#xff1a; 关键特性&…

淘宝新店没有流量和访客怎么办

淘宝新店没有流量和访客时&#xff0c;可以采取以下措施来提升店铺的流量和吸引更多的访客&#xff1a; 3an推客是给商家提供的营销工具&#xff0c;3an推客CPS推广模式由商家自主设置佣金比例&#xff0c;以及设置商品优惠券&#xff0c;激励推广者去帮助商家推广商品链接&…

c++初阶——类和对象(中)

大家好&#xff0c;我是小锋&#xff0c;我们今天继续来学习类和对象。 类的6个默认成员函数 我们想一想如果一个类什么都没有那它就是一个空类&#xff0c;但是空类真的什么都没有吗&#xff1f; 其实并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以…

C++ | Leetcode C++题解之第43题字符串相乘

题目&#xff1a; 题解&#xff1a; class Solution { public:string multiply(string num1, string num2) {if (num1 "0" || num2 "0") {return "0";}int m num1.size(), n num2.size();auto ansArr vector<int>(m n);for (int i …

比亚迪海洋网再添实力爆款,海豹06DM-i、OCEAN-M、海狮07EV登陆北京车展

4月25日&#xff0c;比亚迪海洋网携海豹06DM-i、OCEAN-M、海狮07EV一齐亮相北京车展&#xff0c;引发关注热潮。其中&#xff0c;海洋网全新中型轿车海豹06DM-i价格区间12万-15万元&#xff0c;将于今年二季度上市&#xff1b;行业首款两厢后驱纯电钢炮OCEAN-M价格区间15万-20万…

重发布的原理及其应用

重发布的作用&#xff1a; 在一个网络中&#xff0c;若运行多种路由协议或者相同协议的不同进程&#xff1b;因为协议之间不能直接沟通计算&#xff0c;进程之间也是独立进行转发和运算的&#xff0c;所以&#xff0c;需要使用重发布来实现路由的共享。 条件 &#xff1a; 1&am…

RH850F1KM 搭建MCAL配置环境

1 搭建环境所需的安装包 安装以下软件安装包 1&#xff09;MCAL下载&#xff1a;AUTOSAR RH850/F1KM MCAL v42.11.00 Software 2&#xff09;Davinci工具 SIP包&#xff1a;DaVinci Configurator Pro 3&#xff09;下载网址&#xff1a;https://www.renesas.cn/cn/zh/product…

美团面试题-Nacos配置中心动态刷新原理

①&#xff1a;pull模式&#xff1a;主动拉去配置&#xff0c;通过固定的时间间隔。缺点&#xff1a;频繁请求&#xff0c;时效性不高&#xff0c;时间间隔不好设置。 ②&#xff1a;push模式&#xff1a;服务端检测到变化&#xff0c;主动将新配置推送给客户端&#xff0c;时效…

python的列表生成式

什么是列表生成式&#xff1f; 列表生成式&#xff0c;顾名思义&#xff0c;是生成列表的一个简单又直接的方法。它使用了一种紧凑的语法来构造列表&#xff0c;能够以一种更清晰、更简洁的方式来表达循环和过滤逻辑。 基础示例让我们先从一些简单的例子开始&#xff1a; 「生…

echarts 基础入门

前言&#xff1a;本文档主要讲解 echarts 在 vue3 中的用法&#xff0c;及其 echarts 的一些配置参数含义及用法。示例参考 echarts 示例 一&#xff1a;快速开始 1. 安装 echarts npm install echarts # or pnpm add echarts # or yarn add echarts 2. 使用 echarts <…

通过商品id采集京东商品详情数据(含价格、优惠券、详情、主图等字段)

item_get_app-获得JD商品详情原数据 公共参数 名称类型必须描述keyString是调用key&#xff08;注册账号获取测试key&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cach…

【八股】Spring篇

why Spring? 1.使用它的IOC功能&#xff0c;在解耦上达到了配置级别。 2.使用它对数据库访问事务相关的封装。 3.各种其他组件与Spring的融合&#xff0c;在Spring中更加方便快捷的继承其他一些组件。 IoC和DI &#x1f449;IOC是Inversion of Control的缩写&#xff0c;“…

Day4 商品管理

Day4 商品管理 这里会总结构建项目过程中遇到的问题&#xff0c;以及一些个人思考&#xff01;&#xff01; 学习方法&#xff1a; 1 github源码 文档 官网 2 内容复现 &#xff0c;实际操作 项目源码同步更新到github 欢迎大家star~ 后期会更新并上传前端项目 编写品牌服务 …

【C++】string类的增删改查模拟实现(图例超详细解析!!!)

目录 一、前言 二、string类的模拟实现 ✨前情提要 ✨Member functions —— 成员函数 ⚡构造函数 ⚡拷贝构造函数 ⚡赋值运算符重载 ⚡析构函数 ✨Element access —— 元素访问 ⚡operator[ ] ⚡Iterator —— 迭代器 ✨Capacity —— 容量 ⚡size ⚡capacity ⚡clea…

2024年 Java 面试八股文(20w字)

目录 第一章-Java基础篇 1、你是怎样理解OOP面向对象 难度系数&#xff1a;⭐ 2、重载与重写区别 难度系数&#xff1a;⭐ 3、接口与抽象类的区别 难度系数&#xff1a;⭐ 4、深拷贝与浅拷贝的理解 难度系数&#xff1a;⭐ 5、sleep和wait区别 难度系数&a…

VSCode配置Eclipse快捷键

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、下载扩展二、使用扩展总结 前言 有时候我们可能会同时使用很多种IDE&#xff0c;每种IDE又有不同的Keymap&#xff0c;快捷键用起来很头疼。比如我&#x…

免费语音转文字:自建Whisper,贝锐花生壳3步远程访问

Whisper是OpenAI开发的自动语音识别系统&#xff08;语音转文字&#xff09;。 OpenAI称其英文语音辨识能力已达到人类水准&#xff0c;且支持其它98中语言的自动语音辨识&#xff0c;Whisper神经网络模型被训练来运行语音辨识与翻译任务。 此外&#xff0c;与其他需要联网运行…