Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JAVA Netbeans的SQL算术语句中使用变量/JAVA函数_Java_Mysql_Sql_Function_Arithmetic Expressions - Fatal编程技术网

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

在JAVA Netbeans的SQL算术语句中使用变量/JAVA函数,java,mysql,sql,function,arithmetic-expressions,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

我试图通过使用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 );
}

您不能以您正在尝试的方式使用java函数。您只是将字符串“
”System.currentTimeMillis()”
”传递给dbms—您希望传递对该函数进行评估的结果

"SELECT ID FROM Student WHERE  %l - ArrivalTime > (%s) ",System.currentTimeMillis(), 5000));}"
工作?(我不确定String.format的语法,也没有访问文档的权限,但希望您能理解…)

一个更好的解决方案是使用GriffeyDog建议的准备好的声明,但要比您已经完成的工作稍微远一点


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

long l=System.currentTimeMillis()
然后在SQL语句中使用
l
的值。使用prepd stmt.long l=System.currentTimeMillis()时出现一些错误;String query=“从学生所在地选择id?-到达时间>5000”;尝试{PreparedStatement expired_row=con.preparest陈述(query);expired_row.setLong(1,l);expired_row.execute();ResultSet res=expired_row.getResultSet();if(res==null){System.out.println(“过期行数为“+res);expired_rows.length);}if(res!=null){System.out.println(“过期行数为”+res);System.out.println(“过期行数为”+res.length);}ResultSet res=expired_row.executeQuery();然后通过
while(rs.next)计算行数”{i++)
类似循环。我认为空检查是多余的-executeQuery将抛出SQLException或返回ResultSet-我认为它永远不会返回空值,如果返回空值,则通常意味着错误完全无法恢复谢谢Dave,我仍然在线程“AWT-EventQueue-0”中收到一个错误:Exception“java.lang.NullPointerException。您是否认为这可能是原因:String query=“从学生位置选择id?-到达时间>5000”?