在JAVA Netbeans的SQL算术语句中使用变量/ JAVA函数

时间:2014-03-17 21:07:06

标签: java mysql sql function arithmetic-expressions

我试图通过使用具有数据库中定义的另一个属性的Java函数来查询我的数据库。该语句不会产生错误。但是,输出是错误的。输出的结果为null但是从我的检查中它不是null。请有人能告诉我我需要做什么吗?如何在SQl语句中使用JAVA函数?

expired_rows = dbMngr.runQuery(String.format("SELECT ID FROM Student WHERE 'System.currentTimeMillis()' - ArrivalTime > (%s) ", 5000));}

if (expired_rows == null) { 
    System.out.println("The number of expired row is " + expired_rows);
}
if (expired_rows != null) { 
    System.out.println("The number of expired row is " + expired_rows.length );
}

1 个答案:

答案 0 :(得分:0)

您无法以您尝试的方式使用java函数。你只是传递了字符串" 'System.currentTimeMillis()'"到dbms - 你想传递评估该函数的结果

"SELECT ID FROM Student WHERE  %l - ArrivalTime > (%s) ",System.currentTimeMillis(), 5000));}"

工作? (我不确定String.format的语法,并且不要访问文档,但希望你能得到图片......)

更好的解决方案,但距离您已经完成的工作稍微远一点,就是使用GriffeyDog建议的PreparedStatement。

此外,如果没有生成错误,那么您的dbMngr课程很可能会在不报告异常的情况下吞下异常。