当前位置: 首页 > 知识库问答 >
问题:

如何使用java jdbc程序运行分析查询?

杜英范
2023-03-14

我试图在scala jdbc程序上运行分析查询,如下所述。

try {
    for(t<-tabList){
        var statement = con.prepareStatement(s"analyze ${t}")
        println(s"Analyze for: ${t}")
        val rs = statement.execute()
        println(s"Analyze completed for the table: ${t}")
        println(rs)
    }
} catch {
    case pse:PSQLException => pse.printStackTrace()
    case e:Exception       => e.printStackTrace()
}

该表位于postgres上,我正在创建程序的jar,并从命令行运行它,如下所示。

scala -cp /home/username/postgresql-42.1.4.jar analyzetables_2.11-0.1.jar schema.tablename

代码没有给出任何错误,但我看到resultset对象的结果为false,如下所示:

Analyze for: schema.tablename
Analyze completed for the table: schema.tablename
false

查询不会失败,因此在运行时没有异常。给定的表也存在于数据库中,它们包含数据。但是我打印了结果集对象,看到布尔值false。这意味着分析查询失败了,还是应该以其他方式运行?可以让我知道我处理“分析”查询的方式是否有问题,是否有更好或正确的方法?

共有1个答案

爱博达
2023-03-14

ANALYZE不会生成任何结果集。

如果没有java。sql。SQLException,您可以假设它有效。

你应该使用executeUpdate()而不是execute(),最好使用java。sql。语句而不是java。sql。首先是准备好的声明

 类似资料:
  • 问题内容: 因此,我想尝试一下Timer和TimerTask类。 30秒过后,我能够执行一行代码。我现在一直想做的是让这行代码执行5分钟。 这是我最初尝试的 我在for循环中使用了数字10,以查看timer.schedule在循环的下一次迭代期间是否还要再等待30秒。 知道我应该怎么做吗?我尝试将schedule方法与传入参数period一起使用,但这只是使其重新执行而从未停止过。 问题答案: 您

  • 我一直在尝试为javafx编译和运行这个示例 然后我试着运行这个例子 $java--mode-path"PATH_TO_FX":mods-m hellofx/hellofx。HelloFX 启动层初始化时出错java.nio.file.InvalidPathException:非法字符 所以我认为通往FX的路径是个问题,但事实并非如此。 $java——模块路径src:mods-m hellofx/

  • 问题内容: 有谁知道如何使用CI运行mysqli查询的线索。我确实在配置文件中更改了数据库驱动程序,但是我仍然无法使用多个查询,例如 任何人都知道如何仅使用CI而不使用其他库来执行此操作的任何线索,因为理论上CI支持mysqli。 谢谢 问题答案: 目前,即使CI支持mysqli,据我所知,也不支持多个查询。

  • 问题内容: 我想知道启动Flask应用程序的正确方法。该文档显示了两个不同的命令: 和 产生相同的结果并正确运行该应用程序。 两者之间有什么区别,以及用于运行Flask应用程序的区别是什么? 问题答案: 该命令是用于与Flask应用进行交互的CLI。该文档介绍了如何使用CLI命令和添加自定义命令。该命令是启动开发服务器的首选方法。 使用环境变量将命令指向您的应用程序。设置为与调试器和重新加载器一起

  • 问题内容: 在Debian服务器上,我安装了Node.js。我了解如何使用以下命令行从腻子启动应用程序: 并通过地址(IP和端口)访问它。 但是,一旦我关闭腻子,那我就无法到达地址了。 如何使Node.js应用程序永久运行? 如您所料,我是Linux和Node.js的初学者。 问题答案: 尽管其他答案解决了OP的问题,但它们都是过大的,不能解释为什么他或她遇到此问题。 关键是这一行,“我关闭油灰,

  • 我正在使用Saxon 9.0.4,并在我的Eclipse项目中包含了Home Edition jar。但是每当我发出查询字符串时,什么也没有发生,我也没有得到任何输出。当我从命令行使用以下命令时,我得到了正确的结果: 以下是我的疑问: 这是我使用的代码: 我哪里做错了?此外,是否可能从字符串而不是文件中获得输入?