Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA:从mysql的表中获取单元格_Java_Sql_Cell - Fatal编程技术网

JAVA:从mysql的表中获取单元格

JAVA:从mysql的表中获取单元格,java,sql,cell,Java,Sql,Cell,我在函数中得到一个名为“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.Driv

我在函数中得到一个名为“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;

一切都很好,但只有一个问题。在获取任何值之前,需要将
ResultSet
光标移到第一行:-

使用:-

ResultSet my_rs = ps2.executeQuery(query_txt);
while (my_rs.next()) {
    System.out.println(my_rs.getString("name"));
}

作为一个旁注,考虑使用<代码> PravaReals> < /C> >避免SQL注入攻击。

以下是您如何使用它:-

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"));
}

一切都很好,但只有一个问题。在获取任何值之前,需要将
ResultSet
光标移到第一行:-

使用:-

ResultSet my_rs = ps2.executeQuery(query_txt);
while (my_rs.next()) {
    System.out.println(my_rs.getString("name"));
}

作为一个旁注,考虑使用<代码> PravaReals> < /C> >避免SQL注入攻击。

以下是您如何使用它:-

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"));
}

您需要使用
ResultSet.next()
导航到返回的数据:

if (my_rs.next()) {
  System.out.println(my_rs.getString("name"));
}

您需要使用
ResultSet.next()
导航到返回的数据:

if (my_rs.next()) {
  System.out.println(my_rs.getString("name"));
}
  • 调用my_rs.next(),这将把ResultSet光标移动到第一行(从中提取数据)
  • 如果这是一个真实的应用程序,请使用PreparedStatements而不是泛型语句。如果您计划在SQL查询中使用用户输入,这是一个非常重要的安全问题
  • 调用my_rs.next(),这将把ResultSet光标移动到第一行(从中提取数据)
  • 如果这是一个真实的应用程序,请使用PreparedStatements而不是泛型语句。如果您计划在SQL查询中使用用户输入,这是一个非常重要的安全问题