2012-12-08 71 views
0

查询 “_latin” 是越来越每PARAM之前串接问题与查询的PreparedStatement在Java和MySQL

java代码:

 PreparedStatement prepStmt = null; 
     QueryString = "SELECT FROM Student WHERE username=? AND password=? "; 
     prepStmt=con.prepareStatement(QueryString); 
     prepStmt.setString(1,un); 
     prepStmt.setString(2,pwd); 
     ResultSet rs; 

     System.out.println(prepStmt); 
     rs = prepStmt.executeQuery(); 

错误:

java.sql.SQLException: [MySQL][ODBC 5.1 Driver][mysqld-5.5.24-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM Student WHERE username=_latin1'wow' AND password=_latin1'hell'' at line 1 

为什么它的发生,最新解决方案

这是表格:

table

+0

你的un和pwd是什么? –

+2

您错过了您的专栏列表。 – Perception

回答

0

您缺少查询中的列列表。您必须明确指定所需的列,或者通过通配符来检索所有列。相反的:

SELECT FROM Student WHERE username = ? AND password = ? 

你想要的东西,如:

SELECT * FROM Student WHERE username = ? AND password = ? 

注意,它几乎总是最好明确定义要检索的列,而不是使用通配符表达式。