繁体   English   中英

Java Sql语句未知的列ID

[英]Java Sql Statement Unknown column id

我的数据库是从 xampp 运行的 MySQL 我有 3 列colums id,nazwa,kwota我不断收到错误消息:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“字段列表”中的“main”列未知

我认为问题出在

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

但我找了将近2个小时,似乎没有找到答案......我很绝望,谢谢

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

这是一个奇怪的错误 SQL 语句,如下所示。 缺少FROM table_name

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

它应该是

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

语句中缺少表。 更好的方法是在使用之前在数据库编辑器中测试查询。

我们总是在java中以String传递SQL语句。 如果语句错误,java 编译器会给我们一个Exception 你的情况也是如此,你已经通过字符串传递了语句。 但是您没有指定从中检索数据的表。

你的String是:

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

您应该将String写为:

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

这里的table是您从中检索数据的table Name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM