我有像
这样的查询String query = "Select * from Orders where ordername = ? and orderDate > SYSDATE - 2 ";
我会从用户界面或某些常量(“20-9-2016”)传递**orderName**
和lastDate
。
orderDate = SYSDATE - 2 - >而不是“2”我将发送lastDate。
这是对的吗? SYSDATE oracle函数和“2”之前的常量。现在“2”可以是用户输入。
如何在java中编写查询
String query = "Select * from Orders where ordername = ? and orderDate > SYSDATE - ? ";
以上查询是否正确?如何编写查询
public class CheckOrders extends MappingSqlQuery<Object>{
public PendingOrderExists() {
super(dataSource, queryConfig
.getProperty("query"));
super.declareParameter(new SqlParameter("ORDERNAME", Types.VARCHAR));
//orderdate ? how to declare parameter here
compile();
}
}
答案 0 :(得分:1)
for sysdate-? 的?参数是设置java.sql.Date类的对象而不是java.util.Date类。 java.sql.Date继承java.util.Date。 java.sql.Date(很长一段时间) 这里的长度是自jan1,1979以来经过的毫秒数。
GregorianCalendar gc=new GregorianCalendar(2000, 25, 2);
java.util.Date dt=gc.getTime();
long lg=dt.getTime();
java.sql.Date sqldt=new java.sql.Date(lg);
“
在preparedstatement instance的setDate()方法中传递sqldt对象。
希望这有效 <小时/> alkaramansari1@gmail.com