1

我已经使用 ResourceType 作为 ConnectionPoolDataSource 创建了 glassfish 连接池。因此,glassfish 将使用本机连接池实现进行连接池。我没有使用 XADatasource ResourceType,因为我不想执行任何分布式事务。

我的应用程序需要在运行时使用 TEMPERORY MYSQL 表创建。所以我使用下面的代码从 glassfish 的 JNDI 数据源获取连接。

@Resource(mappedName = "jdbc/xxxxx")
private DataSource dataSource;

public Connection getConnection() throws SQLException {
    Connection con = dataSource.getConnection();
    return con;
}

现在,我的问题是,我可以在这个 Connection 对象上执行 setAutoCommit(false)、commit() 和 rollback()、close() 吗????在论坛中,我读到,如果我们从容器管理的分布式事务(XADataSource)中获取连接,因为它涉及分布式事务,我们不应该在 Connection 对象上调用这些方法。但是,我是从非分布式事务中获得这种连接的。所以,我可以正确调用这些方法???

另一个问题是,执行db操作后,如果我调用con.close(),这个连接会再次回到连接池吗?

4

0 回答 0