我在我的函数中得到一个名为'id'的参数,想要打印这个id行名称的单元格。
例如:
这是我的表:
id name email
1 alon alon@gmail.com
我发送到我的函数:func(1),所以我希望它打印'alon'。
这是我试过的:
static final String url = "jdbc:mysql://localhost:3306/database_alon";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, "root", "Admin");
String query_txt = "SELECT * FROM authors WHERE id = " + id;
Statement ps2 = con.createStatement();
ResultSet my_rs = ps2.executeQuery(query_txt);
System.out.println(my_rs.getString("name"));
con.close;
答案 0 :(得分:2)
一切都很好,但只有一个问题。在获取任何值之前,您需要将ResultSet
光标移动到第一行: -
使用: -
ResultSet my_rs = ps2.executeQuery(query_txt);
while (my_rs.next()) {
System.out.println(my_rs.getString("name"));
}
作为旁注,请考虑使用PreparedStatement
以避免受到SQL注入的攻击。</ p>
以下是您使用它的方式: -
PreparedStatement ps2 = con.prepareStatement("SELECT * FROM authors WHERE id = ?");
ps2.setInt(1, id);
ResultSet my_rs = ps2.executeQuery();
while (my_rs.next()) {
System.out.println(my_rs.getString("name"));
}
答案 1 :(得分:2)
您需要使用ResultSet.next()
导航到返回的数据:
if (my_rs.next()) {
System.out.println(my_rs.getString("name"));
}
答案 2 :(得分:2)