当前位置: 首页 > 面试题库 >

如何在Groovy中为SQL查询配置超时?

邢项禹
2023-03-14
问题内容

如何为此操作创建超时:?

def db = Sql.newInstance("jdbc:mysql://${mysql_host}:3306/${dbName}", 
    user, pass, 'com.mysql.jdbc.Driver')
db.eachRow(query) { row ->
  // do something with the row
}

问题答案:

我相信正确的方法将是这样的:

sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:XE", "user", 
                  "pwd", "oracle.jdbc.driver.OracleDriver")

sql.withStatement { 
   stmt -> stmt.queryTimeout = 10 
}

sql.eachRow("select * from someTable", { 
 println it 
} )

当然,这是我使用Oracle的地方,但是我希望这可以给您一个想法。



 类似资料:
  • 问题内容: 我知道您可以设置用户个人资料或设置查询的一般超时时间。 但是我希望对过程中的特定查询设置超时并捕获异常,例如: 这可能吗?我可以捕获所有超时异常吗?每个块或查询?找不到有关该主题的太多信息。 问题答案: 不,您不能在pl / sql中设置超时。为此,您可以使用宿主语言来嵌入sql和pl / sql。

  • 问题内容: 这不是连接超时,因为与数据库的连接正常。问题是我正在调用的存储过程花费的时间超过30秒,并且会导致超时。 该函数的代码如下所示: ExecuteScalar调用正在超时。如何延长此功能的超时时间? 对于快速存储过程,它可以正常工作。但是,其中一个功能需要一段时间,并且调用失败。当以这种方式调用ExecuteScalar函数时,我似乎找不到任何延长超时时间的方法。 问题答案: 如果您正在

  • 问题内容: 我目前从EntityManager查询中收到连接超时错误。是否可以为这些设置超时? persistence.xml 代码在我的线程的运行功能中超时: 我收到的超时错误: 问题答案: 是的,那里有 javax.persistence.query.timeout 。根据JPA 2.0规范,对此查询提示的支持是可选的: 可移植应用程序不应依赖此提示。根据使用的持久性提供程序和数据库,可能会或

  • 我写了一个代码来管理一个咖啡馆,所以在框架中我添加了一个JTable,每次我从JComboBox中选择一个项目,它都应该显示在JTable中。为此,我添加了一个按钮,对于它的操作,我确保每次单击它时,它都将从JComboBox中单击的项存储在数据库中,然后将从数据库中获取的项存储在JTable中。但问题是JTable有两列,而JComboBox中的选择只有一列。因此,另一列必须从其他数据库调用,这

  • 如何在应用程序级别配置默认查询超时。我使用spring、hibernate和db2作为后端。在datasource级别设置超时不是一个选项,因为我们使用的是旧版本的IBM WebSphere。我尝试在事务管理器中配置defaultTimeout,但这没有帮助。我也不想集成c3p0连接池。hibernate是否为在应用程序级别设置全局查询超时提供了其他选项,如果是,如何配置。

  • 问题内容: 我有PostgreSQL数据库,我尝试打印所有用户(人)。 当我执行此查询时 我得到所有车主按汽车数量排序 输出: 当我尝试链接所有者ID时,所有订单都出错了。 输出:和其他数据 你看比命令是错误的。所以这是我的问题,我该如何保存该订单? 问题答案: 解开混乱。先汇总,然后再加入: 无需加入两次。如果您计数 最多或所有行, 这应该是最快的。 对于 较小的选择 , 相关子查询 更快: 至