"Non-static variable cannot be referenced..." 在我的主要方法中?
"Non-static variable cannot be referenced..." in my main method?
我想用一个小程序与我的 mysql 数据库交互。我已经添加并注入了驱动程序等。我找到了一个教程并一步一步地按照它进行操作,但是 java 总是会抛出错误。
由于我的 "meh" 学校知识,我在 Java 方面不是很先进。谁能告诉我为什么以下代码会抛出以下错误?
import java.sql.*;
public class db_test {
Statement stmt;
ResultSet rs;
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/testdb";
Connection con = DriverManager.getConnection(url,"test", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT name, surname FROM users");
int anzahlZeilen = stmt.executeQuery("UPDATE users SET name = 'Harry' WHERE surname='Larry' ");
while (rs.next()){
String name = rs.getString("name");
String surname = rs.getString("surname");
System.out.println("Surname: "+surname+" | Name: "+name);
}
con.close();
} catch(Exception e) {
System.out.println("Error");
} finally {
System.out.println("Finally");
}
}
}
错误消息在 "stmt = con.createStatement();" 处显示以下内容:"Non-Static Variable stmt cannot be referenced from a static context)"。
与 stmt 和 rs 交互的所有内容都出现相同的错误。
我真的不明白 stmt / rs 是如何工作的(教程遗漏了这一点)所以如果有人能告诉我这叫什么,这样我就可以阅读一些相关内容,那就太好了。
提前致谢。
如果要将以下变量保留在 main
方法之外,请使用 static
关键字声明它们,如下所示:
static Statement stmt;
static ResultSet rs;
或者,将它们按原样放置在 main
方法中。
我想用一个小程序与我的 mysql 数据库交互。我已经添加并注入了驱动程序等。我找到了一个教程并一步一步地按照它进行操作,但是 java 总是会抛出错误。
由于我的 "meh" 学校知识,我在 Java 方面不是很先进。谁能告诉我为什么以下代码会抛出以下错误?
import java.sql.*;
public class db_test {
Statement stmt;
ResultSet rs;
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/testdb";
Connection con = DriverManager.getConnection(url,"test", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT name, surname FROM users");
int anzahlZeilen = stmt.executeQuery("UPDATE users SET name = 'Harry' WHERE surname='Larry' ");
while (rs.next()){
String name = rs.getString("name");
String surname = rs.getString("surname");
System.out.println("Surname: "+surname+" | Name: "+name);
}
con.close();
} catch(Exception e) {
System.out.println("Error");
} finally {
System.out.println("Finally");
}
}
}
错误消息在 "stmt = con.createStatement();" 处显示以下内容:"Non-Static Variable stmt cannot be referenced from a static context)"。
与 stmt 和 rs 交互的所有内容都出现相同的错误。 我真的不明白 stmt / rs 是如何工作的(教程遗漏了这一点)所以如果有人能告诉我这叫什么,这样我就可以阅读一些相关内容,那就太好了。
提前致谢。
如果要将以下变量保留在 main
方法之外,请使用 static
关键字声明它们,如下所示:
static Statement stmt;
static ResultSet rs;
或者,将它们按原样放置在 main
方法中。