Query q = session.createQuery("from FinancialTransactions where ft_TYPE='"+ftTYPE+"' Date between '"+beginDate+"' and '"+endDate+"'");
上面的查询有什么问题?它给出了错误
Query q = session.createQuery("from FinancialTransactions where ft_TYPE='"+ftTYPE+"' Date between '"+beginDate+"' and '"+endDate+"'");
上面的查询有什么问题?它给出了错误
你错过了and
,这Date
是一个关键字
改变
where ft_TYPE='"+ftTYPE+"' Date between
至
where ft_TYPE='"+ftTYPE+"' and Date between
在你需要使用的各种条件之间AND
如果您使用占位符,很明显您错过了 and and
,并且假设beginDate
andendDate
是日期,解析它们可能会遇到问题。
更好的(并且不容易发生 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);