【问题标题】:How can I access the database native java.sql.Connection?如何访问数据库本机 java.sql.Connection?
【发布时间】:2010-01-15 12:40:49
【问题描述】:

我使用 WASCE 作为应用程序服务器,并为 PosgreSQL 定义了一个数据源。我从 JNDI 获得数据库连接。

问题是我想访问 PostgreSQL java.sql.Connection 中的特定方法,但是 WASCE 用他们自己的 Connection 包装了这个连接。

具体来说,我想做这样的事情:

((org.postgresql.Connection)conn).addDataType("geometry","org.postgis.PGgeometry");
((org.postgresql.Connection)conn).addDataType("box3d","org.postgis.PGbox3d");

这可能吗?如果是,请分享方法。

编辑:

我希望从这个包装的连接中访问原始连接,但直到现在我找不到任何东西。

【问题讨论】:

  • 显然没有找到该方法,而该方法不在java.sql.Connection中而仅在org.postgresql.Connection中。
  • nanda:你不是说,很明显ClassCastException被抛出了吗?
  • 啊是的...对不起...我现在不在开发机器前。

标签: java postgresql jdbc websphere


【解决方案1】:

通常连接将通过池处理。为了(相对)透明地处理,您将获得真实连接的代理。因此,您无法直接成功转换连接。连接池可能有一个 API,允许您访问底层连接。

【讨论】:

  • 是的...我希望有类似的东西,但直到现在我都找不到。
【解决方案2】:

你可以试试

((PooledConnection) conn).getConnection()

或者,从 Java 1.6 开始:

conn.unwrap(...)

【讨论】:

    猜你喜欢
    • 2011-08-08
    • 2015-06-01
    • 2012-05-23
    • 1970-01-01
    • 2013-02-25
    • 2019-08-10
    • 1970-01-01
    • 2020-11-22
    • 2012-06-09
    相关资源
    最近更新 更多