我试图通过使用具有数据库中定义的另一个属性的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 );
}
答案 0 :(得分:0)
您无法以您尝试的方式使用java函数。你只是传递了字符串" 'System.currentTimeMillis()'
"到dbms - 你想传递评估该函数的结果
会
"SELECT ID FROM Student WHERE %l - ArrivalTime > (%s) ",System.currentTimeMillis(), 5000));}"
工作? (我不确定String.format的语法,并且不要访问文档,但希望你能得到图片......)
更好的解决方案,但距离您已经完成的工作稍微远一点,就是使用GriffeyDog建议的PreparedStatement。
此外,如果没有生成错误,那么您的dbMngr
课程很可能会在不报告异常的情况下吞下异常。