一尘不染

Java-从MySQL数据库获取数据

jsp

我已经连接到一个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();

阅读 998

收藏
2020-06-08

共1个答案

一尘不染

干得好 :

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();

rs.getInt或者rs.getString您可以通过column_id从开始1,但我更喜欢通过column_name其提供更多的信息,你不必看数据库table为这index是什么column

更新: rs.next

boolean next()抛出SQLException

将光标从当前位置向前移动一排。ResultSet游标最初位于第一行之前;第一个对方法的调用接下来使第一行成为当前行;第二个调用使第二行成为当前行,依此类推。

当对next方法的调用返回false时,光标将位于最后一行之后。任何需要当前行的ResultSet方法调用都会导致抛出SQLException。如果结果集类型为TYPE_FORWARD_ONLY,则由供应商指定其JDBC驱动程序实现将返回false还是在后续对next的调用上引发SQLException。

如果为当前行打开了输入流,则对next方法的调用将隐式将其关闭。读取新行时,将清除ResultSet对象的警告链。

返回:如果新的当前行有效,则返回true;否则返回false。如果没有更多行,则返回false抛出:SQLException-
如果发生数据库访问错误或在封闭的结果集上调用此方法

参考

2020-06-08