Java 错误:来自if子句的语法错误

Java 错误:来自if子句的语法错误,java,jdbc,odbc,Java,Jdbc,Odbc,该错误在from子句中出现语法错误。当您使用sql组合jk和ik时,表名和where子句之间没有空格。这就是为什么你会出错的原因。有一个规格在那里吗 String jk = "where nam='" + txt1.getText() + "'"; String ik = "and password='" + txt2.getPassword() + " ' "; String sql; sql = "SELECT * FROM Table1" + jk + ik; rs = stmt.exec

该错误在from子句中出现语法错误。

当您使用sql组合jk和ik时,表名和where子句之间没有空格。这就是为什么你会出错的原因。有一个规格在那里吗

String jk = "where nam='" + txt1.getText() + "'";
String ik = "and password='" + txt2.getPassword() + " ' ";
String sql;
sql = "SELECT * FROM Table1" + jk + ik;
rs = stmt.executeQuery(sql);

您必须在
jk
ik

String jk =" where nam='"+txt1.getText()+"'";                
String ik =" and password='"+txt2.getPassword()+" ' ";                               String sql;                 
sql = "SELECT * FROM Table1" +jk+ik;                        
rs = stmt.executeQuery(sql); 
但最好是学习准备好的语句。

尝试以下内容:

sql = "SELECT * FROM Table1" +jk+" "+ik; 
最初您的查询如下所示

String jk =" where nam='"+txt1.getText()+"'";        //note the space before where
String ik =" and password='"+txt2.getPassword()+" '  //and space before and
String sql;                 
sql = "SELECT * FROM Table1" +jk+ik;                        
rs = stmt.executeQuery(sql); 
空格后

SELECT * FROM Table1where nam='xyz'and password='xyz';
试试这个:

SELECT * FROM Table1 where nam='xyz' and password='xyz';
您忘记在“where”和“and”之间添加空格
我还觉得nam将是表列中的名称

from
where
子句之间添加空格

String jk =" where nam='"+txt1.getText()+"'";                
String ik =" and password='"+txt2.getPassword()+" ' ";                                              

    String sql;                 
sql = "SELECT * FROM Table1" +jk+ik;                        
rs = stmt.executeQuery(sql); 

为了避免将来出现此类错误,我建议使用
PreparedStatement
。这是Oracle教程

String jk ="where nam='"+txt1.getText()+"'";
String ik ="and password='"+txt2.getPassword()+" ' "; String sql;
sql = "SELECT * FROM Table1" + " " + jk + " " + ik; rs = stmt.executeQuery(sql);
这应该很好用。。!
干杯快乐编码:)

这似乎是错误的,无论是在语法上还是在逻辑上:+jk+ik在
where
之前都需要空格。在密码之后和关闭
之前也有空格,这将使它无法工作。此外,该列是否真的命名为
nam
?或者它是
名称
?非常重要的是要精确,不要马虎。是的,它现在起作用了。谢谢你的帮助,现在可以用了。感谢您的帮助。请通过单击勾号选择此选项作为您的答案,不仅可以避免这些错误,还可以避免。
String stmnt = "SELECT * FROM Table1 WHERE nam=? and password=?;";
PreparedStatement pstmt = con.prepareStatement(stmnt);
pstmt.setString(1, txt1.getText());
pstmt.setString(2, txt2.getText());
ResultSet rs = pstmt.executeQuery();
String jk =" where nam='"+txt1.getText()+"' ";
String ik ="and password='"+txt2.getPassword()+"'";     
String sql = "SELECT * FROM Table1" +jk+ik;                        
rs = stmt.executeQuery(sql);