java - 是否可以从 SQLException 对象获取 JDBC Connection 对象?

标签 java jdbc jersey jax-rs

这就是我想做的:我正在使用 JAX-RS 编写一个 Restful 应用程序。我编写了一个异常映射器来将 SQLException 映射到 HTTP 状态代码 500。

@Provider
public class SQLExceptionMapper implements ExceptionMapper<SQLException> {

    @Override
    public Response toResponse(SQLException exception) {
        Logger.error(exception);
        return Response.serverError().build();
    }
}

我在代码中遇到过很多这样的情况:

try {
    conn.setAutoCommit(false);
    /* do some stuff */
    conn.commit();
} catch (SQLException ex) {
    conn.rollback();
    /* re-throw SQLException again so exception mapper converts it to HTTP status 500 */
    throw ex;
} finally {
    conn.setAutoCommit(true);
    conn.close();
}

实际上我不喜欢conn.rollback();抛出前;。我真正想要的是从 SQLException 对象获取 JDBC Connection 对象,以便我可以在异常映射器内回滚连接。这可能吗?与此问题无关的另一个问题是:我在数据库调用之间进行了一些广泛的数学处理。我在完成每个阶段后关闭连接,并在下一阶段开始时打开它。因此,在一个请求中我会执行多次打开/关闭操作。这是不好的模式吗?

最佳答案

Is it possible to get JDBC Connection object from SQLException object?

没有。

关于java - 是否可以从 SQLException 对象获取 JDBC Connection 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23709883/

相关文章:

java - Android 游戏时间处理

Java Runtime.exec() 程序不会输出到文件

Postgresql:最大连接数:设置应用程序名称吃连接

java - 包括使用 JAX-RS+Jersey 进行 JSON 到对象映射的 Morphia

java - Spring Controller 被调用2次

java - 把我所有的 bean 放在不同的文件中

xml - Tomcat (TomEE)/7.0.62 (1.7.2) XML 配置文件最佳实践

java - 如何使用 JDBC 在 Java 中获取存储过程的多个 SELECT 语句

java - Jersey 有没有办法从 URL 获取类

java - 在 Jersey 中,如何使某些方法使用 POJO 映射功能而某些方法不使用?