1

エラーが発生します:

'フィールドリスト''の'不明な列'customerno'。

しかし、その列は私の顧客テーブルに存在します。では、なぜこの例外が発生するのですか?

コード:

import java.sql.*;  

public class Classy {  

    static String myQuery =   
            "SELECT customerno, name" +  
            "FROM customers;";  

    public static void main(String[]args)  
    {  
        String username = "cowboy";  
        String password = "1234567";  
        try  
        {  
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Business", username, password);  
            Statement stmt = con.createStatement();  
            ResultSet rs = stmt.executeQuery(myQuery);  

            while(rs.next())  
            {  
                System.out.print(rs.getString("customerno"));  
            }

        } catch(SQLException ex){System.out.println(ex);}  

    }  

}  
4

3 に答える 3

4

クエリが実際に何であるかを見てください。これ:

static String myQuery =   
        "SELECT customerno, name" +  
        "FROM customers;";  

と同等です:

static String myQuery = "SELECT customerno, nameFROM customers;";  

今、あなたは何が悪いのかわかりますか?customernoパーツが足りないというよりも文句を言ってびっくりしましたFROM...

どちらも欲しくないのではないかと思い;ます。読みやすくするためだけでなく、アクセシビリティを制限して最終的なものにするために、すべて1行で記述します。

private static final String QUERY = "SELECT customerno, name FROM customers";  
于 2012-07-21T17:12:17.210 に答える
1

構文の問題は、との間スペースがないことです。nameFROM

String myQuery =   
        "SELECT customerno, name" +  // problem is here
        "FROM customers;"; 

代わりに、後にスペースを追加してくださいname

 String myQuery =   
        "SELECT customerno, name " +  // add space here
        "FROM customers"; 
于 2012-07-21T17:21:10.913 に答える
0
import java.sql.*;  

public class Classy {  

static String myQuery =   
        "SELECT customerno, name" +  
        "FROM customers;";  

public static void main(String[]args)  
{  
    String username = "cowboy";  
    String password = "1234567";  
    try  
    {  
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Business", username, password);  
        Statement stmt = con.createStatement();  
        ResultSet rs = stmt.executeQuery(myQuery);  

        while(rs.next())  
        {  

//データベースに存在する数値でこれを変更してみてください。たとえば、列2の場合は、rs.getString(1);のようにします。

            System.out.print(rs.getString("customerno"));  
        }  


    }catch(SQLException ex){System.out.println(ex);}  

}  

}
于 2012-07-21T17:10:09.337 に答える