我正在尝试从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;
}
我也有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);
}
上面的代码是为 ButtonHandler
现在,因为println
我得到一个“ com.mysql.jdbc.JDBC4ResultSet@1e72cae
”
..我不知道这是怎么回事..但是我假设ResultSet在这里是错误的选择。
我的问题是..我在那可以使用什么呢?
任何关于我做错了什么的帮助或线索都将受到赞赏。
Right now, for the println I'm getting a
“com.mysql.jdbc.JDBC4ResultSet@1e72cae”
是因为您将ResultSet
物件退回这里,value = rs.toString();
从文档中,
ResultSet对象是代表数据库结果集的数据表,通常通过执行查询数据库的语句来生成
您通过游标访问ResultSet对象中的数据。请注意,此游标不是数据库游标。该光标是一个指向ResultSet中的一行数据的指针。最初,光标位于第一行之前。方法ResultSet.next将光标移动到下一行。如果光标位于最后一行之后,则此方法返回false。此方法使用while循环重复调用ResultSet.next方法,以遍历ResultSet中的所有数据。
您应该告诉结果集从列中获取值,
value = rs.getString(1);
通过索引
value = rs.getString("itemNo");
或通过列名
我只是在尝试使用更复杂的语句时修补SQL。我不知道这是否符合条件,但请指导如何进行。 我已经研究了连接和一些关于多个Select语句的问题,但无法正确理解它们。 我有以下两张表: emp表: 图书目录: 其中books表中的是引用emp表的外键。 我需要从特定组织的books表中获取所有记录。但除此之外,我还需要在结果中获得各个员工的所有数据,如姓名、地址。 请给我指引正确的方向。 谢谢
问题内容: 我知道从存储的过程中返回标量值的首选方法是使用或参数。但可以说我有一个存储的proc,它使用select语句返回值: 是否有可能从另一个存储的过程中获取此值? 澄清: 我需要一个不需要使用参数或使用返回值的解决方案。 提前致谢。 问题答案: 您可以使用insert- exec 将存储过程的结果存储在表中: 该表的定义必须与存储过程的结果集匹配。
我有一个庞大的代码库,其中包含大量JAVA和。sql文件。我打算从所有这些文件中提取所有SQL语句。 这是我打算实现这一目标的方式- 构建一个正则表达式文件,其中包含我打算提取的选择、插入、删除、更新等模式。 在代码库中逐行解析文件并与Regex匹配。如果找到匹配,则注册代码行、文件名、模式等。 当SQL查询被分成多行时,就会出现问题。 我正在使用java。util。正则表达式。Matcher和j
问题内容: K,所以我有两个表: 我想从类别中获取所有信息,并计算每个类别中的问题数(question_id)。 假设,第一个类别(计费)将有一个问题,第二个类别(安全)将有3个问题。 我已经试过了: 问题答案: 您想这样做: 在将确保没有问题类别获得与数= 0上市
问题内容: 我们有2个非常简单的SELECT语句: 我们需要一种编写单个SQL语句的方法,该方法将获得从这两个SQL语句返回的“值”的差。 我们尝试了以下操作,但未成功: 任何建议都将受到高度赞赏。 问题答案: 未经测试,但应该可以工作: 假设您肯定会返回一个值
问题内容: 我有下面的代码,我在其中将记录插入到表中。当我尝试获取结果集时,它返回null。如何将最新添加的行放入结果集中? 编辑:已解决 添加了以下方法以转到最后添加的行 问题答案: 当使用一个SQL语句,例如,或用,您必须使用,这将返回affeted的行数。在这种情况下,sql操作不会产生任何结果,因此调用executeQuery将抛出。 如果您确实需要a ,则必须使用SQL操作进行另一条语句