当我尝试根据下面的参数计数动态设置preparestament参数时,SQL Server JDBC驱动程序会给我错误。
preparedStatement = root.prepareStatement("SELECT * FROM users WHERE DATE BETWEEN ? AND ?");
if(preparedStatement.getParameterMetaData()!=null){ //exception at this line
//do some logic
}
错误:
com.microsoft.sqlserver.jdbc.SQLServerException: com.microsoft.sqlserver.jdbc.SQLServerException:附近的语法不正确 关键字' BETWEEN'。
相同代码适用于 Mysql jdbc驱动程序。
(我正在使用sqljdbc41.jar for mssql)。
任何人都有这种问题或任何解决方案吗?
答案 0 :(得分:0)
DATE是保留字,您需要将其括在引号中:
root.prepareStatement("SELECT * FROM users WHERE \"DATE\" BETWEEN ? AND ?");