JDBC和MS-Access问题

时间:2009-11-25 09:55:26

标签: java ms-access jdbc

我正在尝试连接到MSAccess数据库并检索一些数据。 通过简单的例子,所有运行良好,但如果我要使用一些 where子句我没有数据。

这个例子没问题:

PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A");
ResultSet rs = stm.executeQuery();
rs.next();

下一个示例没有行:

PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A WHERE (((A.Name) LIKE ?))");
stm.setString(1,"*");
ResultSet rs = stm.executeQuery();
rs.next();

我不知道错误在哪里:在驱动程序或sql语法中。

sql语句取自MSAccess中的查询构建器。

在where子句中,所有更复杂的东西都很难理解。是否有任何文档重写MSAccess的SQL语法?

更新

是的,在jdbc sql语句中,我必须使用“SQL标准”%通配符,而Access sql构建器使用*。现在用date = 8-o

进行查询

2 个答案:

答案 0 :(得分:1)

要使like语句起作用,必须将参数放在%:

之间
PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A WHERE (((A.Name) LIKE ?))");
stm.setString(1,"%like text%");

答案 1 :(得分:0)

你有没有意味着SQL通配符'%'而不是'*',或者你真的在寻找字符'*'?