gpt4 book ai didi

java - 何时使用 JDBC 对连接、语句和结果集调用 getWarnings()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:40 24 4
gpt4 key购买 nike

在 JDBC 中,ConnectionStatementResultSet 类型都有一个 getWarnings() 方法,即指定产生与该类型对象关联的第一个警告。第二个和后续警告(如果存在)将链接到第一个警告(如果 甚至存在,如果没有警告则生成 null)。

规范说,与这些类型的对象关联的警告在执行某些操作后会被清除。例如,当读取每个新行时,ResultSet 上的警告将被清除。

SQLWarning 类型是 SQLException 的子类型。那么警告的存在是否会由异常指示?如果异常的运行时类型是 SQLWarning,那么该异常将被链接到关联的对象?

我想知道的是,它可能是特定于驱动程序的,我怎么知道什么时候应该调用 getWarnings() 并期望一个非 null response? 换句话说,警告是否存在于 JDBC 对象上并且仅在该对象引发异常后才可用于 getWarnings()? (那个异常(exception)是警告?)

如果我的目标是观察每个警告,我是否应该在每次 JDBC 操作后调用 getWarnings() 来查找警告“只是为了确定”?

最佳答案

SQLWarning 对象是 SQLException 的子类,用于处理数据库访问警告。

警告不会像异常那样停止应用程序的执行;他们只是提醒用户某些事情没有按计划发生。

可以在Connection对象、Statement对象(包括PreparedStatementCallableStatement对象)上报警告), 或 ResultSet 对象。

这些类中的每一个都有一个 getWarnings 方法,您必须调用该方法才能看到调用对象上报告的第一个警告:

SQLWarning warning = stmt.getWarnings();
if (warning != null)
{
System.out.println(\"n---Warning---n\");
while (warning != null)
{
System.out.println(\"Message: \" + warning.getMessage());
System.out.println(\"SQLState: \" + warning.getSQLState());
System.out.print(\"Vendor error code: \");
System.out.println(warning.getErrorCode());
System.out.println(\"\");
warning = warning.getNextWarning();
}
}

关于java - 何时使用 JDBC 对连接、语句和结果集调用 getWarnings()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6434338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com