这个sql查询有什么问题?

时间:2013-04-18 11:17:17

标签: hibernate

Query q = session.createQuery("from FinancialTransactions where ft_TYPE='"+ftTYPE+"' Date between '"+beginDate+"' and '"+endDate+"'");

上述查询有什么问题?它给出了错误

2 个答案:

答案 0 :(得分:2)

您错过了and,此处Date是关键字

更改

where ft_TYPE='"+ftTYPE+"' Date between 

where ft_TYPE='"+ftTYPE+"' and Date between

在各种条件之间,您需要使用AND

答案 1 :(得分:0)

如果你使用占位符,很明显你错过了and,同时假设beginDateendDate是日期,它可能会在解析它们时遇到问题。

更好(并且不容易进行HQL注入)将是:

Query q = session.createQuery(
     "from FinancialTransactions " +
    "where ft_TYPE=? " +
      "and Date between ? and ?");
q.setString(1, ftType);
q.setDate(2, startDate);
q.setDate(3, endDate);