while (true){ String logsql = "select * from mysql.general_log where command_type =\"Query\" OR command_type =\"Execute\" order by event_time desc limit 2"; ResultSet log = stmt2.executeQuery(logsql); while (log.next()){ String logres = log.getString("argument"); if (!logres.equals(logsql)){ System.out.println(String.format("[%s] %s",ftime(),logres)); } //不适当休眠一下会疯狂查询 占用cpu资源。 Thread.sleep(100); } }为啥输出的不是我刚刚执行的SQL语句
时间: 2024-02-14 21:24:09 浏览: 128
sqlselect.rar_java mysql_java mysql查询_查询数据库
这段代码是一个循环,每次循环会查询 MySQL 数据库中的 general_log 表,获取最近两条 command_type 为 Query 或 Execute 的记录,并将其中的 argument 字段(即 SQL 语句)进行输出。如果输出的不是你刚刚执行的 SQL 语句,可能是因为你执行的 SQL 语句没有被记录在 general_log 表中,或者是因为代码中的查询语句不正确,没有获取到你想要的结果。你可以检查一下 general_log 表中是否存在你执行的 SQL 语句的记录,并且确认代码中的查询语句是否正确。
阅读全文