java - 当我已经有 JDBC 连接池时如何使用 Vaadin SQLContainer

标签 java database-connection vaadin connection-pooling vaadin7

Vaadin 7 提供 SQLContainer执行。 Book of Vaadin表示使用其 JDBC 连接池的任一实现。但我已经在使用 Tomcat JDBC Connection Pool执行。让一个池从另一个池中提取数据似乎是一件坏事。

为了继续使用 Tomcat 池,我实现了 com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool界面。该接口(interface)需要三个方法:

  • reserveConnection
    我返回从 Tomcat 池中提取的连接。
  • releaseConnection
    我什么也没做。我尝试在连接上调用 close,但这实际上关闭了连接,而不是将其返回到 Tomcat 池。显然,SQLContainer 已经调用了 close 一次,而我第二次调用 close 实际上关闭了连接。我收到运行时错误,指出连接未打开。
  • 销毁
    我什么也没做。据说这个方法只是解决 Postgres(我正在使用的)某些问题的一些解决方法,但考虑到我实际上使用的是 Tomcat 池,这似乎无关紧要。

➜ 实现该接口(interface)是正确的方法吗?

➜ 如果实现该接口(interface)是可行的方法,那么我这样做是否正确?我还需要解决其他问题吗?

我的 Tomcat 池可通过 JNDI 访问,因此我不确定是否应该使用 Vaadin 类 J2EEConnectionPool .

最佳答案

事实上,您应该能够使用 J2EEConnectionPool,正如您在上面自己的答案中所描述的那样。我已经成功地将 J2EEConnectionPool 与 FreeformQuery 结合使用,所以我知道这是可行的。不幸的是,Vaadin 的 TableQuery 实现中显然存在一个错误,导致您看到“连接已关闭”错误。请参阅:http://dev.vaadin.com/ticket/12370

该票证建议更改代码,但就我而言,我只是将有问题的 TableQuery 替换为 FreeformQuery。

关于java - 当我已经有 JDBC 连接池时如何使用 Vaadin SQLContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371577/

相关文章:

java - java 9 和 maven 的 Eclipse 问题

java - 从海量文件中检索用户关系数据,尝试级联删除规则

java - 将 ValueChangeListener 添加到 CustomComponent

java - 想要暂停代码直到用户使用按钮

java - 无法将 Java ap 连接到在线 MySQL 数据库 - 错误的 URL

Java hibernate动态数据库选择

java - 从小程序连接数据库

vaadin - 从剪贴板上传图像

java - 如何使用 Vaadin 在 Spring 中获取查询参数?

java - 为 spring Jaxb2Marshaller 指定一个包而不是 "classesToBeBound"