我已经连接到一个 MySQL 数据库,该数据库包含四个字段(第一个字段是 ID,后面的每个字段都包含 varchar 字符串)。
我试图获取数据库的最后一行并检索字段的内容,以便我可以将它们设置为变量(一个 int 和三个字符串)并稍后使用它们。
到目前为止,我已经完成了最低限度的连接,我该去哪里?正如你所看到的,我尝试编写一条 SQL 语句来获取最后一行,但从那里开始一切都出了问题,而且我不知道如何将其拆分为单独的字段。
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/t", "", "");
Statement st = con.createStatement();
String sql = ("SELECT * FROM posts ORDER BY id DESC LIMIT 1;");
st.getResultSet().getRow();
con.close();
干得好 :
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/t", "", "");
Statement st = con.createStatement();
String sql = ("SELECT * FROM posts ORDER BY id DESC LIMIT 1;");
ResultSet rs = st.executeQuery(sql);
if(rs.next()) {
int id = rs.getInt("first_column_name");
String str1 = rs.getString("second_column_name");
}
con.close();
In rs.getInt
or rs.getString
你可以通过column_id
从...开始1
,但我更喜欢通过column_name
因为它的信息更丰富,因为您不必查看数据库table
为此index
是什么column
.
UPDATE : rs.next
布尔值下一个()
抛出 SQLException
将光标从当前位置向前移动一行。 A
ResultSet 游标最初位于第一行之前;这
第一次调用 next 方法使第一行成为当前行;这
第二次调用使第二行成为当前行,依此类推。
当调用 next 方法返回 false 时,光标定位
在最后一行之后。对 ResultSet 方法的任何调用
需要当前行将导致抛出 SQLException。如果
结果集类型为 TYPE_FORWARD_ONLY,由供应商指定
他们的 JDBC 驱动程序实现是否会返回 false 或抛出异常
后续调用 next 时出现 SQLException。
如果当前行打开输入流,则调用该方法
next 将隐式关闭它。 ResultSet 对象的警告链是
当读取新行时清除。
返回:
如果新的当前行有效,则为 true;如果没有更多行则为 false 抛出:
SQLException - 如果发生数据库访问错误或对关闭的结果集调用此方法
参考 http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#next%28%29
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)