Java - 从MySQL数据库获取数据

min*_*ino 8 java mysql sql database 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();
Run Code Online (Sandbox Code Playgroud)

Har*_*ngh 13

干得好 :

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();
Run Code Online (Sandbox Code Playgroud)

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.

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

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

参考