我想询问在执行查询时如何从PostgreSQL获取消息响应。
来自PostgreSQL的消息响应我的意思是这样的,例如:
我正在使用JDBC。
我试图从Statement类的executeUpdate()
获取它。但它只返回表示查询是否成功执行的int。
有什么办法吗?
答案 0 :(得分:3)
我不确定你是否得到像
这样的陈述查询成功返回:1行受影响,11 ms执行时间。
但您可以使用类似statement.executeUpdate()
的替代方法,它返回受DML语句执行影响的行数。
来到另一个声明
错误:重复键值违反了唯一约束“pk_grouptab”
每当数据库中发生错误时,抛出SQLException
,您需要显式捕获异常并处理它。 SQLException Api另外,请查看此link,其中简要介绍了JDBC中的异常处理。
如果要在执行查询后检查是否有任何警告,可以使用getWarnings
并使用getMessage()
等方法获取警告消息。
下面是骨架
try {
// execute sql statements here
log.info(statement.getWarnings().getMessage());
}
catch(SQLException ex) {
// an exception has occurred get all info related to the exception
log.info(ex.getErrorCode());
log.info(ex.getMessage());
ex.printStackTrace();
}
finally {
// close all open connections
}
希望这会对你有所帮助。