最新要闻
- 每日观点:法国调香师夸国产花露水清新还美丽 要卖450元 网友:六神YYDS
- 《蚁人3》女儿凯茜中文预告公布 首映礼美艳图赏
- 当前关注:重回中国!福建13岁女孩4.82秒打破鲁班锁世界纪录
- 今日讯!ROG新款幻14笔记本即将上市:锐龙9 7940HS 可选RTX 4060
- 免费用!中国信通院全球网测APP iOS版上线:支持5G/千兆接入测速
- 速读:71款任选 森马T恤33元清仓手慢无
- 动态:祝福!比尔盖茨有新女友了 身家超33亿女富婆:双方沉默 前妻也有新恋情
- 完美收官!《三体》电视剧最后5集被赞爆:老外满分刷屏
- 快看:80km续航 雅迪电动车DN2千元秒杀:2699元起还是新国标
- 今亮点!女子熬夜看《狂飙》:患高启强同款干眼症
- 世界热头条丨逆天 韩国学生用ChatGPT写论文“喜”提0分 校方:剽窃!
- 快资讯:再续一个月:《阿凡达:水之道》再次宣布延长上映
- 28款CPU性能实测:Intel实力屠榜 AMD游戏神U赢回面子
- 全球消息!全国首座高速公路重卡充换电站亮相:电池包350kWh 3分钟自动换电
- 环球视点!无损压缩鼻祖去世了 没有他就没有今天的Zip、PNG、PDF
- 当前观点:博主“科普”鲸鱼会假装搁浅吸引人来救 博物杂志辟谣:九死一生
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球速讯:JAVA中如何判断一个ResultSet结果集是否为空
问题描述
ResultSet 表示 select 语句的查询结果集。ResultSet 对象具有指向其当前数据行的指针, 最初,指针被置于第一行记录之前,通过 next() 方法可以将指针移动到下一行记录。
next() 方法在 ResultSet 对象没有一行记录时返回 false ,因此可以在 while 循环中使用它来遍历结果集,也可以利用该方法判断结果集是否为空。
示例代码如下:
(资料图片)
//此处省略连接数据库的代码...Statement stmt =conn.createStatement(); ResultSet rs =stmr.executeQuery("select * from Test");if(rs.next()){ System.out.println("结果集不为空!"); }else{ System.out.println("结果集为空!"); }
此时出现第一个坑:Java 的 ResultSet 对象,默认是不可更新的,仅有一个向前移动的指针。
因此,只能遍历它一次,并且只能按从第一行到最后一行的顺序进行。
当你使用了 rs.next() 进行判断后,会出现第一行数据丢失的情况。
这也是我一开始遇到的问题。
深究问题
ResultSet 的 Type 属性
遇到问题后我第一想法是在搜索引擎上搜索相关解决办法,但看了一圈具体有以下“解法”:
调用 rs.last() 方法,以获取 ResultSet中 记录的总数,然后调用 rs.beforeFirst() 方法将光标移回到第一条记录前面
这种方法看上去可行,但当我实际修改后运行,却出现报错
Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY.
这又是什么原因呢?
出现这个报错的主要原因是:
ResultSet.TYPE_FORWARD_ONLY 类型的 ResultSet 只允许向前遍历,不支持访问先前的记录或确定其大小。因此,使用 last() 和 getRow() 等方法都是不可行。
而 ResultSet 的 Type 属性有如下几种:
参数类型 | 说明 |
---|---|
ResultSet.TYPE_FORWORD_ONLY | 结果集的游标只能向下滚动 |
ResultSet.TYPE_SCROLL_INSENSITIVE | 结果集的游标可以上下移动,当数据库变化时,当前结果集不变 |
ResultSet.TYPE_SCROLL_SENSITIVE | 返回可滚动的结果集,当数据库变化时,当前结果集同步改变 |
当 Statement stmt = conn.createStatement();
中 的 createStatement() 缺省时等价于: createStatement(ResultSet.TYPE_FORWORD_ONLY,ResultSet.CONCUR_READ_ONLY);
也就是结果集的游标只能向下滚动
所以才会出现 Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY. 的报错
也就是 ResultSet 默认情况下,只能使用 next() 方法向前逐行移动游标,而不支持 last()、first() 以及 absolute() 等方法,如果要使用 last()、absolute() 等方法,必须在由 Connection 生成 Statement 时指定相应的参数,格式如下:
Statement stmt =conn.ctrateStatement(游标类型,记录更新权限);
解决办法
手动指定游标类型
Statement stmt =conn.createStatement(ResultSet.TYPE_SCOLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
将 ResultSet 的内容复制到一个 List 中,然后检查 List 是否为空
List
请注意,在实际生产环境中,请考虑数据量和内存使用情况,因为将所有记录复制到List中可能对内存产生很大影响。
定义 一个计数变量 i ,每次 next() 则 ++i ,在 while() 循环结束后判断 i 是否小于等于 0
int i = 0;while (resultSet.next()){ System.out.println(...); ++i;}if(i<=0) System.out.println(...);
-
环球速讯:JAVA中如何判断一个ResultSet结果集是否为空
问题描述ResultSet表示select语句的查询结果集。ResultSet对象具有指向其当前数据行的指针,最初,指针...
来源: -
【天天速看料】MYSQL脱敏 || 给开发人员限制权限,保证mysql数据库数据安全
(文章目录)MYSQL脱敏脱敏:脱离敏感信息。有时候开发需要权限查找一些数据,那么mysql数据库存放着很多...
来源: 环球速讯:JAVA中如何判断一个ResultSet结果集是否为空
【天天速看料】MYSQL脱敏 || 给开发人员限制权限,保证mysql数据库数据安全
重点聚焦!小白也能做应用(二)之fusion app增加B站视频页面
每日观点:法国调香师夸国产花露水清新还美丽 要卖450元 网友:六神YYDS
MATLAB 实现点云累计-坐标系转换-目标范围点云提取(附代码与代码注释)
【全球快播报】面向对象知识点汇总(小白必会)
(一)浅谈人工智能:ChatGPT
《蚁人3》女儿凯茜中文预告公布 首映礼美艳图赏
环球热消息:【一句话】@Configuration和@Component的区别
世界看热讯:《分布式技术原理与算法解析》学习笔记Day06
焦点消息!ASP.NET Core+Element+SQL Server开发校园图书管理系统(完)
全球看点:if else 代码优化实战
全球动态:网络协议-ssh基础
当前关注:重回中国!福建13岁女孩4.82秒打破鲁班锁世界纪录
今日讯!ROG新款幻14笔记本即将上市:锐龙9 7940HS 可选RTX 4060
免费用!中国信通院全球网测APP iOS版上线:支持5G/千兆接入测速
速读:71款任选 森马T恤33元清仓手慢无
动态:祝福!比尔盖茨有新女友了 身家超33亿女富婆:双方沉默 前妻也有新恋情
完美收官!《三体》电视剧最后5集被赞爆:老外满分刷屏
快看:80km续航 雅迪电动车DN2千元秒杀:2699元起还是新国标
Copula
今亮点!女子熬夜看《狂飙》:患高启强同款干眼症
世界热头条丨逆天 韩国学生用ChatGPT写论文“喜”提0分 校方:剽窃!
快资讯:再续一个月:《阿凡达:水之道》再次宣布延长上映
28款CPU性能实测:Intel实力屠榜 AMD游戏神U赢回面子
全球消息!全国首座高速公路重卡充换电站亮相:电池包350kWh 3分钟自动换电
基于图的下一代入侵检测系统
环球快资讯丨MySQL——性能优化的关注点
天天简讯:记录--Cesium+Vue实战教程——地图导航
世界关注:人工智能(Python)教程_编程入门自学教程_菜鸟教程-免费教程分享
天天要闻:安卓常用shell命令大全
环球视点!无损压缩鼻祖去世了 没有他就没有今天的Zip、PNG、PDF
当前观点:博主“科普”鲸鱼会假装搁浅吸引人来救 博物杂志辟谣:九死一生
天天快讯:行驶中会“熄火” 大众召回超2万辆ID.4电动车
世界报道:欧洲玩家吐槽《霍格沃茨之遗》捏脸系统:最浅的皮肤选项依然很深
当前速看:Stochastic Methods in Finance (1)
【独家】.Net6对AOP的多种支持之IAsyncResourceFilter
世界观天下!常见的python技术难点分享
当前速讯:Nodejs原型链污染
世界要闻:[threeJS]--- 外部导入的模型如何编程式实现帧动画以及调用模型自带的动画
情人节必备:德芙香浓黑巧12元/碗大促
逃离银河系!科学家在仙女星系中发现银河移民
世界快播:山东女子中淘宝彩票锦鲤:直播1小时刮594张彩票 中7170元
天天滚动:骁龙8+满血版、残血版差价非常大 一加揭秘:能差1个亿
防止技术垄断:昆仑万维宣布将在年内开源类ChatGPT代码
【全球播资讯】陕西旅游集团旗下景区春节期间累计接待超 200 万人次,这背后也有火山引擎 VeDI 的身影
当前热门:分享5个我不能没有的Vue.js库,不信你用不上
KingbaseES libstdc++.so.6 version 'CXXABI_1.3.8'问题处理
敏捷数据科学教程_编程入门自学教程_菜鸟教程-免费教程分享
MPI库并行Fortran程序:进程通讯
微头条丨女子带汉堡进星巴克被拦 称味道大会影响其他顾客 网友抵制
微信数据再多都够用 真我GT Neo5 1TB干到3499元:旗舰射门员
新资讯:14岁女孩连续玩手机81小时险猝死 专家提醒:家长一定要控制
【环球时快讯】1TB手机不到3500元!网友评价真我GT Neo5:这让友商很难做
世界新消息丨又多了一种摸鱼手段 小红书网页版上线:左图右文 沉浸大屏
快看:Android教程_编程入门自学教程_菜鸟教程-免费教程分享
天天日报丨vue2和vue3的区别有哪些?
docker学习
【全球热闻】剑指Offer 05. 替换空格(java解题)
信息:首个教育圈ChatGPT来了!网易有道将推生成式AI:可批改作文
每日快播:创下历史第二!《霍格沃茨之遗》steam在线人数达48万
快看点丨哭笑不得!西班牙火车尺寸太大无法过隧道:白花2亿多欧元
成都现飞鸟撞树现象 网友疑灾害前兆!专家回应:想多了
环球今日报丨用ChatGPT做表格真香!只需动嘴提要求和复制粘贴
Java基础三元运算符
世界快消息!Crystal Reports 教程_编程入门自学教程_菜鸟教程-免费教程分享
新资讯:再有人问你分布式事务,把这篇文章砸过去给他
有了 ETL 数据神器 dbt,表数据秒变 NebulaGraph 中的图数据
天天播报:部分玩家批评《塞尔达传说:王国之泪》新宣传片:太中庸没新意
环球热讯:比亚迪百万新车或搭载:余承东李想力挺增程式到底落不落后?专家一句真相
C# 学习async/await(个人理解)
30 个 IDEA 常用小技巧,应有尽有,让你的撸码效率直接起飞...
【天天聚看点】世界有史以来最大百科全书!《永乐大典》首次线上公开 免费看
华擎推出4X4 BOX-7000系列迷你主机:锐龙7000U、支持双USB4
小米Civi 2宣布全版本支持MIUI 14!系统丝滑流畅、更省电
女子手机放枕边突然冒烟自燃:曾因进水维修
饭店反向抹零多收1毛被罚4500元 网友点赞:四舍五入抹零有误都可举报
天天日报丨必知必会的设计原则——里氏替换原则
焦点速递!联想发布“问天”服务器品牌 向3S领域发起总攻 5年内冲击第一
焦点!谷歌版ChatGPT灾难级发布 市值一夜狂跌7000亿 熬夜网友:退钱!
快播:刘强东要建员工福利房?京东31亿北京拿地 1.6万元/平
当前快报:手工扯面+秘制辣油 西安饭庄油泼biangbiang面6.6元/盒大促
全球看点:任天堂港服“任亏券”开卖:《塞尔达传说:王国之泪》预售你买没
孔雀石的主要成分是什么?孔雀石的作用与好处有哪些?
空气能热水器的优缺点是什么?空气能热水器十大名牌排名
高一选科怎么选最好?高一期中考试总结范文
暑假带孩子去哪里旅游最好?我的快乐暑假作文模板
旅游高峰期相反的叫什么?旅游高峰期是哪几个月?
植物大战僵尸2闪退是怎么回事?植物大战僵尸2闪退解决办法
精彩看点:【学习笔记】Http请求方法总结
当前通讯!FCoE简单介绍
头条焦点:git在工作中如何使用?
热议:近期做的有意思的两道题,不知道是谁抄谁hhhhh
Java利用ChromeDriver插件网页截图(Wondows版+Linux版)
煲音箱与不煲的差别大吗?煲音箱音量开多大合适?
验证码总是错误是怎么回事?验证码总是错误怎么解决?
电脑屏幕尺子怎么打开?电脑屏幕尺子怎么使用?
技嘉主板怎么设置U盘启动?技嘉主板超频怎么设置?
热门看点:价格率先步入“次世代”:《塞尔达传说:王国之泪》涨至70美元
环球最资讯丨《王者荣耀》项羽、虞姬情人节皮肤来了:280元值吗?