我正在尝试连接到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
进行查询答案 0 :(得分:1)
要使like语句起作用,必须将参数放在%:
之间PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A WHERE (((A.Name) LIKE ?))");
stm.setString(1,"%like text%");
答案 1 :(得分:0)
你有没有意味着SQL通配符'%'而不是'*',或者你真的在寻找字符'*'?