java ResultSet和语句问题

时间:2015-09-05 17:06:35

标签: java mysql

我不明白为什么我的变量无法解决。

我在java Mysql项目中。

这是Commands类代码:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;


public class Commands {

    public Commands() throws SQLException{
        Connection conn = DbConn.getInstance();
        Statement state = conn.createStatement();
    }

    public String getList(){
        System.out.println("Here is a List of our Products:");
        // Get list from db
        ResultSet result = state.executeQuery("SELECT * FROM products");
        ResultSetMetaData resultMeta = result.getMetaData();
        // Display the List

        System.out.println("List displayed");
        return null;
    }
}

这是DbConn类代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class DbConn {
      private static String url = "jdbc:mysql://localhost:3306/myDB";
      private static String user = "root";
      private static String passwd = "";
      private static Connection connect;

      // create new instance if not exists
       public static Connection getInstance(){
           if(connect == null){
                try {
                    connect = DriverManager.getConnection(url, user, passwd);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
           }      
           return connect;  
      }   
}

我的代码尚未完成,但是此消息来自此行:

ResultSet result = state.executeQuery("SELECT * FROM products");

我的Eclipse编辑器说这条消息状态无法解析

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是范围问题。你在这里定义变量

public Commands() throws SQLException{
    Connection conn = DbConn.getInstance();
    Statement state = conn.createStatement();
}

这是变量可见的唯一位置 - 在构造函数中。在类中定义它并在构造函数中初始化它:

private Connection conn = null;
private Statement state = null;

public Commands() throws SQLException{
    conn = DbConn.getInstance();
    state = conn.createStatement();
}

答案 1 :(得分:0)

宣布"州"在那个构造函数之外。

Connection conn = null;
Statement state = null;

public Commands() throws SQLException{
    conn = DbConn.getInstance();
    state = conn.createStatement();
}