ResultSet 中的getString()方法的用法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ResultSet 中的getString()方法的用法?相关的知识,希望对你有一定的参考价值。

ResultSet rs;
Sting s=rs.getString(1),请问括号中的1是什么意思啊?
比如我表中的为id,username,password,其中id为int,username为varchar,password也为varchar类型的,我现在想得到password的值,是用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 编程语言

参考技术A 返回所对应的字段 比如你的表中字段为id,name,password
rs.getString(1)就是返回id的值
rs.getString(2)就是返回name的值
或者也可以写成rs.getString("id");
rs.getString("name");

如果你表中的字段类型为字符型就用rs.getString();
如果是整型用rs.getInt();

补充楼主的问题:
你直接用rs.getString("password");就可以了
也别?是几的问题了
参考技术B 1是在数据库表中第几列,第一列是id
第二列就是username,以此类推
也可以写成
rs.getString("id")必须id列是varchar char类型的
参考技术C 应该填的数字为3,
也可以直接填“password”,

取值得时候数据库表里的字段,要与SQL语句相识.
参考技术D 返回第一列的数据(String)

resultSet.getString() 为空值返回啥

【中文标题】resultSet.getString() 为空值返回啥【英文标题】:What does resultSet.getString() return for null valueresultSet.getString() 为空值返回什么 【发布时间】:2014-05-12 14:51:11 【问题描述】:

我正在数据库中查询数据库中可能为空的一些值。当我在 resultSet 上调用 getString() 时,如果 DB 值为 null,getString 返回的值是多少?这是javadoc:

Retrieves the value of the designated column in the current row of this ResultSet       
object as a String in the Java programming language.

Parameters:
columnLabel the label for the column specified with the SQL AS clause. If the SQL AS      
clause was not specified, then the label is the name of the column
Returns:
the column value; if the value is SQL NULL, the value returned is null
Throws:
SQLException - if the columnLabel is not valid; if a database access error occurs or    
this    method is called on a closed result set

它说返回值为空,但我不确定这是否意味着“空”或空。我知道我可以让我的代码明显测试这两个值以查看它是否为空,但我不希望它测试不必要的条件。

【问题讨论】:

做一个简单的测试。它将返回null,而不是"null" ***.com/questions/5991360/… 的可能重复项 【参考方案1】:

它说返回值为空,但我不确定这是“空”还是空

在标准 Java 库中,如果它曾经说“可以返回 null”,则表示引用,也就是 null

但我不希望它测试不必要的条件。

在 java 中,如果您与 null 打交道,通常最好还是检查一下,即使找到 null 的机会很小。

【讨论】:

【参考方案2】:

jdbc 在 Windows 10 上使用 mariadb 5.5 - 空列 getString() 返回字符串值“null”,在 rs.getString() 之后立即调用 rs.wasNull() 返回 false。

注意:我通过查询“... WHERE my-column-name IS NULL”仔细检查了数据库,以确认数据库实际上将其存储为空值。

因此,虽然生活在象牙塔中并始终信任 javadocs 是件好事,但没有什么比自己编写一个快速测试更好的了。虽然我同意为 null 编写多个测试是低效的,但除非你能保证你的应用程序将在特定的数据库/版本上运行,否则这可能是一个好主意。

【讨论】:

以上是关于ResultSet 中的getString()方法的用法?的主要内容,如果未能解决你的问题,请参考以下文章

ResultSet的getInt()和getString()方法详解

resultSet.getString() 为空值返回啥

rs.getString(1) 有啥功能?

查找 ResultSet 列数? [复制]

JDBC ResultSet 获取具有表别名的列

如何从子查询中获取 ResultSet 的别名?