resultset用法(使用java,用resultset获取数据库中的结果)

:暂无数据 2026-06-05 02:40:01 :0

resultset用法(使用java,用resultset获取数据库中的结果)

本篇文章给大家谈谈resultset用法,以及使用java,用resultset获取数据库中的结果对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

使用java,用resultset获取数据库中的结果

ResultSet
是一个迭代模式的动态连接容器。
迭代模式的容器遍历的时候通常是这样的
while(rs.next()){
//循环内容
}
rs.next()返回值是一个boolean,表示在迭代过程中是否已经到结尾。
直接从statement.excuteQuery()获得的rs默认数据游标在起始数据的前一个位置,调用一遍rs.next()才能指向可能有数据的第一条数据。然后遍历继续,直到迭代集合中再无数据rs.next()返回false;
ps:rs.getRow()表达的意思是结果集在当前游标下共存在多少列,不是rs的size()
在循环体中您将可以获得当前整行数据的各个列的值以及其它信息。

resultset方法

可以值么写,但是在你代码第三行之前得判断rs.first()返回值,为true才可以进行:rs.first()光标移动到此 ResultSet 对象的第一行,如果光标位于有效行,则返回 true;如果结果集中不存在任何行,则返回 false 。如果返回false,那么执行第三行将发生异常。
应该这样:
rs=sql.executeQuery(sql1);
if(rs.first()){
out.print(rs.getString(“jh“));
}else{
//没有附和条件的记录
}

关于ResultSet

ResultSet
rs
=
getStatement().executeQuery(sql);
//执行查询语句
rs.moveToInsertRow();
//移动游标到所要插的行!或者叫指针
rs.updateString(“Fcode“,
frmValue[i]);
//修改值
rs.updateString(“Fname“,
frmValue[i]);
rs.updateString(“FdescCode“,
frmValue[i]);
rs.updateString(“Ftype“,
frmValue[i]);
//执行所要修改的内容
rs.insertRow();

关于jdbc中ResultSet的next()方法

既然怀疑就查资料验证呗,看
JDK
API
最权威,这是JDK
API
中关于
ResultSet
的
next
函数详解,一目了然:
boolean
next()
throws
SQLException
将光标从当前位置向前移一行。ResultSet
光标最初位于第一行之前;第一次调用
next
方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
当调用
next
方法返回
false
时,光标位于最后一行的后面。任何要求当前行的
ResultSet
方法调用将导致抛出
SQLException。如果结果集的类型是
TYPE_FORWARD_ONLY,则其
JDBC
驱动程序实现对后续
next
调用是返回
false
还是抛出
SQLException
将由供应商指定。
如果对当前行开启了输入流,则调用
next
方法将隐式关闭它。读取新行时,将清除
ResultSet
对象的警告链。
返回:
如果新的当前行有效,则返回
true;如果不存在下一行,则返回
false
抛出:
SQLException
-
如果发生数据库访问错误或在关闭的结果集上调用此方法
又API知道,next()方法一开始定位在第一行前面,所以用之前你的
next()
以下(一般入门人员很容易在这里出错)才能得到第一行数据,next到最后了会定位在最后一行的后面,不会自动回到第一行的。

ResultSet的first方法用法

要遍历 得到第一个结果集可以这个

if(rs.next()){
String firstResult = rs.getString(1);
}
当然字段类型你自己确定,或者是rs.getString(“字段名称“);

Java两个线程分别返回两个ResultSet,如何分多次读取两个ResultSet的结果

  1. 创建实体

    ResultBean 

    private RsultSet resultSet;

    private List《Bean》 resultList;

    包含方法:

    方法1:public List《Bean》 getResultList();每次将resultList清空后使用resultSet.next读取Bean再添加,判断是否遍历完毕,遍历完毕调用closeResultSet方法并返回null

    方法2:public void closeResultSet();关闭ResultSet

2.建立一个单例工具类ResultUtil,包含以下私有成员

 private Map《用户操作标识,ResultBean》 resultMap;


用户操作标识每次进入页面时随机生成一个且不可重复,后续点击加载都是使用页面初始化时使用的用户操作标识

 方法1:public void pushResultBean(String 用户操作标识,ResultBean resultBean) ;添加ResultBean到resultMap中,key为用户操作标识;

 方法2: public ResultBean getResultBean(String 用户操作标识) 根据用户操作标识取得ResultBean;

方法 3:public void removeResultBean(String 用户操作标识);通过用户操作标识remove


3.接口层

通过用户标识调用单例工具类的ResultUtil.getResultBean方法,通过得到的ResultBean再调用getResultList方法,当getResultList方法返回结果为空将调用ResultUtil.removeResultBean方法


4.前端

每次通过用户操作标识请求接口,得到响应结果追加即可

机优化方案:还需要ResultUtil中的resultMap回收,可以考虑使用websoket,或者心跳机制,想简单的话先用心跳机制解决,单独开一个接口,前端定时调用,如果超过三十秒该用户操作标识没有心跳检测调用ResultUtil.removeResultBean方法,若是用户体量大的话考虑使用netty

ResultSet 中的getString()方法的用法

1、getString:String getString(int columnIndex),throws SQLException以Java编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。

2、1代表第一列。

例如:

columnIndex - 第一个列是1,第二个列是2,…… 

返回:

列值;如果值为SQL NULL,则返回值为null 

抛出: 

SQLException 

扩展资料:

ResultSet 对象的用法:

ResultSet 对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next 方法将指针移动到下一行;因为该方法在 ResultSet 对象中没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。

默认的 ResultSet 对象不可更新,仅有一个向前移动的指针。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。

可以生成可滚动和/或可更新的 ResultSet 对象。以下代码片段(其中 con 为有效的 Connection 对象)演示了如何生成可滚动且不受其他更新影响的、可更新的结果集。请参阅 ResultSet 字段以了解其他选项。

[pre]Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE)。

ResultSet rs = stmt.executeQuery(“SELECT a, b FROM TABLE2“); // rs will be scrollable, will not show changes made by others, // and will be updatable。

ResultSet 接口提供用于从当前行检索列值的获取方法(getBoolean、getLong 等)。可以使用列的索引编号或列的名称检索值。一般情况下,使用列索引较为高效。列从 1 开始编号。为了获得最大的可移植性,应该按从左到右的顺序读取每行中的结果集列,而且每列只能读取一次。

对于获取方法,JDBC 驱动程序尝试将基础数据转换为在获取方法中指定的 Java 类型,并返回适当的 Java 值。JDBC 规范有一个表,显示允许的从 SQL 类型到供 ResultSet 获取方法使用的 Java 类型的映射关系。

用作获取方法的输入的列名称不区分大小写。用列名称调用获取方法时,如果多个列具有这一名称,则返回第一个匹配列的值。

参考资料来源:百度百科--ResultSet

参考资料来源:百度百科--Java 编程语言

关于resultset用法和使用java,用resultset获取数据库中的结果的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

resultset用法(使用java,用resultset获取数据库中的结果)

本文编辑:admin

更多文章:


promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

各位老铁们,大家好,今天由我来为大家分享云备份,以及手机云备份是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 02:40

java遍历map的key(java Map 怎么遍历)

java遍历map的key(java Map 怎么遍历)

大家好,java遍历map的key相信很多的网友都不是很明白,包括java Map 怎么遍历也是一样,不过没有关系,接下来就来为大家分享关于java遍历map的key和java Map 怎么遍历的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 02:20

微信xlsx文件怎么打开(苹果手机微信打开excel)

微信xlsx文件怎么打开(苹果手机微信打开excel)

大家好,关于微信xlsx文件怎么打开很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于苹果手机微信打开excel的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 01:10

reduce用法和短语(减少的英文短语有哪些)

reduce用法和短语(减少的英文短语有哪些)

其实reduce用法和短语的问题并不复杂,但是又很多的朋友都不太了解减少的英文短语有哪些,因此呢,今天小编就来为大家分享reduce用法和短语的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 00:40

最近更新

promote翻译(英语翻译倡导怎么说)
2026-10-11 06:30:03 浏览:0
热门文章

标签列表