2016-07-08 39 views
-2

我的數據庫是MySQL的從XAMPP 運行我有3個colums id,nazwa,kwota 我不斷收到一個錯誤:Java的SQL語句未知列ID

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'main' in 'field list'

我認爲問題是出在

String sql = ("SELECT id, nazwa, kwota"); 
ResultSet rs = stmt.executeQuery(sql); 

,但我正在尋找差不多2個小時,似乎沒有找到答案... Im絕望,謝謝

import java.sql.*; 
import javax.sql.*; 

public class JdbcDriver{ 

public static void main(String args[]) { 

     Connection conn = null; 
     Statement stmt = null; 


     String username = "wojtek"; 
     String password = "3445222"; 
     String url = "jdbc:mysql://localhost:3306/javatest"; 



     try{ 

      //STEP 2: Register JDBC driver 
      Class.forName("com.mysql.jdbc.Driver"); 

      //STEP 3: Open a connection 
      System.out.println("Connecting to a selected database..."); 
      conn = DriverManager.getConnection(url, username, password); 
      System.out.println("Connected database successfully..."); 

      //STEP 4: Execute a query 
      System.out.println("Creating statement..."); 
      stmt = conn.createStatement(); 

      String sql = ("SELECT id, nazwa, kwota"); 
      ResultSet rs = stmt.executeQuery(sql); 

      //STEP 5: Extract data from result set 
      while(rs.next()){ 

      //Retrieve by column name 
       int id = rs.getInt("id"); 
       String nazwa = rs.getString("nazwa"); 
       int kwota = rs.getInt("kwota"); 

      //Display values 
       System.out.print("ID: " + id); 
       System.out.print(", Nazwa: " + nazwa); 
       System.out.print(", kwota: " + kwota); 

      } 
      rs.close(); 
     }catch(SQLException se){ 
      //Handle errors for JDBC 
      se.printStackTrace(); 
     }catch(Exception e){ 
      //Handle errors for Class.forName 
      e.printStackTrace(); 
     }finally{ 
      //finally block used to close resources 
      try{ 
       if(stmt!=null) 
        conn.close(); 
      }catch(SQLException se){ 
      }// do nothing 
      try{ 
       if(conn!=null) 
        conn.close(); 
      }catch(SQLException se){ 
       se.printStackTrace(); 
      }//end finally try 
     }//end try 
     System.out.println("Goodbye!"); 
     }//end main 
     }//end JDBCExample 
+3

您的聲明似乎缺少'FROM'和一個TABLE。 –

+1

添加表名,學習如何編寫sql語句 – Nishank

回答

0

這是一個奇怪的錯誤SQL語句,如下所示。它遺漏FROM table_name

String sql = ("SELECT id, nazwa, kwota"); 

應該

String sql = ("SELECT id, nazwa, kwota FROM your_table_name"); 
             ^... missing this part 
0

表中缺少的聲明。更好的方法是在使用它之前總是在數據庫編輯器中測試查詢。

0

我們總是通過java中的String傳遞SQL語句。如果Statement是錯誤的,java編譯器會給我們一個Exception。你的情況也是如此,你已經通過字符串通過了聲明。但是您尚未指定從中獲取數據的表格。

String是:

String sql = ("SELECT id, nazwa, kwota"); 

你應該寫的String爲:

String sql = ("SELECT id, nazwa, kwota FROM table"); 

這裏table是您的table Name您從中擷取您的數據。