MS Access ODBC:语法错误.. LIKE'thomas%'

时间:2012-11-05 05:50:07

标签: java sql ms-access

我正在开发一个迷你应用程序,我必须在表格中检索并保存USER_ID。

它的作用是这样的;我输入用户的电子邮件地址,然后语句必须检索USER_ID并将其保存到表中。

我的SQL Like声明有问题。它只是我必须只插入电子邮件地址的第一部分。例如,“thomas@yahoo.com”。我只插入“托马斯”;不是剩下的一部分。

以下是我在Java控制台中收到的语句和结果消息的示例:

代码:

String ea = txt_email.getText();
String lid = "SELECT USER_ID FROM user WHERE email_address Like  '"+ea+"%' ";

错误消息:

  

错误:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序]查询表达式中的语法错误(缺少运算符)''SELECT USER_ID FROM user WHERE email_address Like'thomas%'''。

2 个答案:

答案 0 :(得分:3)

尝试使用*代替%。 MS ACCESS对*语句使用%而不是LIKE

希望这有帮助

答案 1 :(得分:0)

使用 PreparedStatement

PreparedStatement _query = con.prepareStatement(
        "SELECT USER_ID FROM user WHERE email_address Like ?");
_query.setString(1, ea + "*");  // <== use *
_query.executeQuery();

其中con是您的活动连接对象。

使用PreparedStatement的一个好处是免受SQL Injection

的影响