无法从静态上下文中引用非静态 变量错误
我做了个数据库的操作类,总是调不好,谢谢各位,帮个忙给调试一下,代码如下。
import java.sql.*;
public class SqlHelper {
public Connection con = null;
public ResultSet result = null;
public void SelectException (String SelectSqlString) {
try{
// 为这个连接建立SQL语句容器
Statement select = con.createStatement();
// Statement select = con.prepareStatement( );//用于复杂的SQL语句
// 执行SQL语句查询获得字符集
ResultSet result = select.executeQuery(SelectSqlString);
} catch (Exception e) {
System.out.println(SelectSqlString);// 看SQL语句查过来没
e.printStackTrace();
}
}
public void CloseConn(){
if (con != null) {
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void SetConn() {
// 定义数据库地址
String url = "jdbc:mysql://localhost:3306/ccentertainment";
// 定义数据库连接
//Connection con = null;
try {
// 定义数据库驱动
String driver = "com.mysql.jdbc.Driver";
// 加载数据库驱动
Class.forName(driver).newInstance();
} catch (Exception e) {
System.out.println("加载数据库驱动失败!");
return;
}
try {
// 连接数据库
con = DriverManager.getConnection(url, "root", "root");
}catch (Exception e) {
e.printStackTrace();
}
}
}
#########################################################
import java.sql.*;
public class ShowDbTest {
ResultSet Sresult = null;
public static void main(String args[]) {
SqlHelper ShValue = new SqlHelper();
ShValue.SetConn();
ShValue.SelectException("select * from user");
Sresult = ShValue.result;
try {
while (Sresult.next()) { // process results one row at a time
System.out.println(Sresult.getInt(1) + Sresult.getInt(2));
}
}
catch (Exception e) {
e.printStackTrace();
}
ShValue.CloseConn();
}
}
#############################################
---------- 编译 ----------
ShowDbTest.java:11: 无法从静态上下文中引用非静态 变量 Sresult
Sresult = ShValue.result;
^
ShowDbTest.java:13: 无法从静态上下文中引用非静态 变量 Sresult
while (Sresult.next()) { // process results one row at a time
^
ShowDbTest.java:14: 无法从静态上下文中引用非静态 变量 Sresult
System.out.println(Sresult.getInt(1) + Sresult.getInt(2));
^
ShowDbTest.java:14: 无法从静态上下文中引用非静态 变量 Sresult
System.out.println(Sresult.getInt(1) + Sresult.getInt(2));
^
4 错误
输出完成 (耗时 1 秒)
...全文
相关推荐
java无法从静态上下文中引用非静态一些错误
"Java编程初学者常常会遇到一个常见的错误,即‘无法从静态上下文中引用非静态’。这个错误通常出现在尝试在静态方法中访问非静态成员(变量或方法)时。理解这个问题的关键在于静态与非静态成员的生命周期和
C++静态成员函数不能调用非静态成员变量(详解)
在上述示例中,尝试在`statictestfun1`中访问非静态成员变量`b`会引发编译错误,因为编译器无法确定`b`属于哪个对象实例。
C++静态成员变量和静态成员函数的使用方法总结
**无法调用非静态成员**:由于没有`this`指针,静态成员函数不能直接调用非静态成员。它们通常用于提供类的工具函数,或者在不需要特定对象上下文的情况下执行操作。
java学习中调试过程中经常遇到的错误
非静态上下文中引用静态变量**错误提示**:“`Test1.java`:非静态的变量info不能在静态上下文中引用17行24列处”**解释**:当试图在静态上下文中引用非静态成员时,会出现此错误。
Java静态方法调用限制[代码]
由于静态方法不能访问非静态成员变量和方法,因此它们无法直接访问实例的状态。此外,过度使用静态方法可能会导致程序设计上的问题,比如难以维护和扩展。


Java SE
