"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 方法中。