目前有很多能够实现数据库交互的框架,很多框架用起来很方便,但,也不是任何时候都能去用一些框架,毕竟框架虽好,也得合适,就像开发语言,没有所谓的最好的开发语言,没有所谓的天下第一,只有合适与不合适,好了扯远了,开始正题

mysql查询结果的处理,对于框架,比如mybatis、mybatisplus、springdataJPA等等,都可以映射成一个实体类对象,我们可以很方便的处理,此处就不做讲解了,但是对于原生的JDBC来说,查询出来的结果可不是一个对象(我说的是原生JDBC,可不是spring整合的JDBC),而是一个 ResultSet

啧,这个ResultSet就是你给的SQL的查询结果了,这个时候如果你没有用过JDBC或者没解析过的就懵逼了,当你尝试去使用它的方法的时候,你会发现,这玩意是个啥,它的方法咋看起来都不像!!!

对,你没看错,你接收到的返回对象也没错,它就是一个ResultSet,这个结果集包含了你查询的所有结果,接下来告诉你怎么转换

想要获取你查询到的数据,你首先得拿到这个数据集对吧,ResultSet没有直接提供给你获取查询数据的方法,但给了你获取数据集的方法.getMetaData()

获取到结果集之后,你就可以获取查询的条数,查询到的内容,字段名以及字段对应的值!

来,给你一份我之前写的共用方法,可以把ResultSet转换为Listt<Map>,我保证,你一看就懂

    /** ResultSet----->Map* */public List<Map> ResultSetToMap(ResultSet resultSet) throws SQLException {List<Map> list = new ArrayList<>();ResultSetMetaData metaData = resultSet.getMetaData();int columnCount = metaData.getColumnCount();while (resultSet.next()) {Map<String, Object> jsonMap = new HashMap<>();for (int i = 1; i <= columnCount; i++) {String columnTypeName = metaData.getColumnTypeName(i);String columnName = metaData.getColumnName(i);if ("INT".equals(columnTypeName)) {int anInt = resultSet.getInt(columnName);jsonMap.put(columnName, anInt);} else {String s = resultSet.getString(columnName);jsonMap.put(columnName, s);}}list.add(jsonMap);}return list;}

是不是一看就懂,就是去遍历这个结果集,拿到字段名,根据字段名去拿值,最后收集起来,这里我对 int 类型做了处理,让他作为int取出,其他的类型我统一按照String处理了,当然,这个都可以处理,随你,看你的需要,总体的意思就是,你去遍历它,去取结果,就好了

有帮助到你点赞、收藏 、关注一下吧

需要更多教程,微信扫码即可

mysql的查询结果ResultSet处理相关推荐

  1. 学习MySQL:使用SELECT语句从MySQL服务器查询数据

    In this series of articles, we are going to learn about the basics of the MySQL database server. In ...

  2. java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...

    //代码复制出来,修改一下bean,加载一下jar包,能直接用的,不懂加我Q 983331283 package cn.tootoo.entity; public class Page { priva ...

  3. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  4. mysql 查看当前事务id,MySQL 如何查询当前最新事务ID

    写在前面:在个别时候可能需要查看当前最新的事务 ID,以便做一些业务逻辑上的判断(例如利用事务 ID 变化以及前后时差,统计每次事务的响应时长等用途). 通常地,我们有两种方法可以查看当前的事务 ID ...

  5. 分享一个mysql 复杂查询的例子

    发布:脚本学堂/MySQL  编辑:thebaby   2013-08-23 09:37:37  [大 中 小] 有关mysql复杂查询的一个例子,正在学习mysql的朋友,可以作为一个参考. 在my ...

  6. 浅谈 MySQL 子查询及其优化

    2019独角兽企业重金招聘Python工程师标准>>> 使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动 ...

  7. mysql慢查询开启及分析方法

    最近服务维护的公司的DB服务器,总是会出现问题,感觉需要优化一下了,登陆上去,发现慢查询日志都没有开,真是惭愧, 故果断加上慢查询日志,经过分析sql记录,发现问题很多,开发人员很多没有对sql优化, ...

  8. mysql三表查询数据重复_解决mybatis三表连接查询数据重复的问题

    此问题的产生,主要是数据库的字段名一样导致 三张表 DOCTOR JOB OBJECT 有问题的查询语句和查询结果是: SELECT d.*,j.*,o.* from (select d.*,rown ...

  9. mysql 查询语句 参数,mysql参数化查询语句有关问题

    mysql参数化查询语句问题 部分代码如下: using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.O ...

最新文章

  1. CentOS-6.5安装配置Tengine
  2. ssm_maven idea分模块开发
  3. Windows下创建静态库
  4. ViewPager留两边 显示左右两边的视图
  5. Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式
  6. 合泰单片机 熔丝_合泰单片机HT66F018红外发射C程序及电路图
  7. 『数据库』震惊,某博主为吸引眼球拿出压箱底SQL总结,如果你没看那就吃亏了!(超级详细的SQL基础,你还不会的话就别学数据库了)
  8. 【做题记录】CF1444A Division
  9. php中浮点数计算问题
  10. 2021级C语言大作业 - 霓虹深渊
  11. linux内存换算成b显示,Linux内存管理(下)
  12. Python如何在循环语句中加入两个变量_Python基础知识
  13. 销售与顾客的PV同步算法
  14. python是哪一年发明的_Python的发明,竟然是因为他不喜欢花括号。
  15. 2021年最完整的人工智能入门指南
  16. 阿里云数据迁移工具解决方案:华为云迁移到阿里云
  17. 上拉电阻的作用原理_单片机P0口以及上拉电阻
  18. 芝村乡大学生投资理财
  19. 一个震惊日本的广告:中国人,奇强!!!
  20. html iso标准文档,ISO9001-2015-标准中英文.doc

热门文章

  1. 拼多多联合三奇医卫等企业,每天上架1000万只平价口罩
  2. 丁磊:很多人来网易工作只是为了谋生而不是兴趣
  3. 该!这个电视频道违规播出非法集资广告 被停播30天
  4. 荣耀9X Pro外观设计图曝光:升降前置摄像头/保留3.5mm耳机孔
  5. 这家大厂手机业务也凉了 改做手表?官方回应让人放心了...
  6. 《权力的游戏》第八季剧情翻水:超40万粉丝请愿重拍
  7. 龙头地位无可撼动!腾讯占全球游戏市场15% 连续6年登营收榜首
  8. 腾讯内容开放平台:将重拳打击盗号 严重违法行为将报送国家执法部门
  9. Android画笔自定义控件三要素
  10. LINUX线程同步:原子操作、锁、二元信号量、信号量、互斥量、临界区、读写锁、条件变量等