![](/img/trans.png)
[英]java.sql.SQLSyntaxErrorException: Unknown column 'id' in 'where clause'
[英]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.