Tsa*_*sar 5 java sql jdbc resultset
我正在尝试从select语句返回一个值.它只有一个值,因为我返回的值来自主键列.
SQL语句是 SELECT itemNo FROM item WHERE itemName = 'astringvalue';
我获取值的方法如下所示:
private String viewValue(Connection con, String command) throws SQLException
{
String value = null;
Statement stmt = null;
try
{
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(command);
while (rs.next())
value = rs.toString();
}
catch (SQLException e )
{
e.printStackTrace();
}
finally
{
if (stmt !=
null) { stmt.close(); }
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
我也有一个getConnection()方法.
这是我用来调用viewValue方法的方法:
if((action.getSource() == btnSave) ||(action.getSource() == btnSavePrint) )
{
String findItemNoCommand = "SELECT itemNo FROM `item` WHERE itemName = '" + itemList.getSelectedItem() + "'";
try
{
itemNo = viewValue(conn, findItemNoCommand);
}
catch (SQLException e)
{
e.printStackTrace();
}
System.out.println(itemNo);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码是为a编写的 ButtonHandler
现在,因为println我得到一个" com.mysql.jdbc.JDBC4ResultSet@1e72cae"..我不明白它是怎么回事......但我假设ResultSet在这里是错误的选择.
我的问题是......我能在那里使用什么才能起作用?
任何有关我做错的帮助或线索都非常感谢.
Run Code Online (Sandbox Code Playgroud)Right now, for the println I'm getting a "com.mysql.jdbc.JDBC4ResultSet@1e72cae"
是因为你在ResultSet这里归还了这个对象,value = rs.toString();
来自docs,
ResultSet对象是表示数据库结果集的数据表,通常通过执行查询数据库的语句生成
您可以通过游标访问ResultSet对象中的数据.请注意,此游标不是数据库游标.此游标是指向ResultSet中一行数据的指针.最初,光标位于第一行之前.ResultSet.next方法将光标移动到下一行.如果光标位于最后一行之后,则此方法返回false.此方法使用while循环重复调用ResultSet.next方法以迭代ResultSet中的所有数据.
您应该告诉结果集从列中获取值,
value = rs.getString(1);
Run Code Online (Sandbox Code Playgroud)
通过索引
value = rs.getString("itemNo");
Run Code Online (Sandbox Code Playgroud)
或通过列名称
| 归档时间: |
|
| 查看次数: |
63354 次 |
| 最近记录: |