所以,我正在使用Oracle sql在Java中的第一个项目中工作,但遇到了一些麻烦。 我试图找出是否只有一个连接就可以解决整个项目。
答案 0 :(得分:-1)
在一个线程内,是的。
您可以维护一个JDBC Connection
对象。您可以提交一系列Statement
或PreparedStatement
对象以执行。
请确保您的SQL非常干净。例如,在继续进行进一步的呼叫之前,请务必先解决事务。利用try-with-resources语法关闭每个ResultSet
等。
为由于网络故障等事件导致的连接失败做好准备。定期测试您的连接。如果损坏,则需要重新打开新的Connection
。
我不一定建议无限期地打开Connection
。该连接正在数据库服务器上保存资源。除非使该数据库忙于一系列快速操作,否则通常应关闭未使用的连接以释放资源。保持DataSource
实现对象在需要时获得新的连接。
有些人会建议使用连接池。我不会,除非您已经证明了一个明显的问题,并且可以通过池解决。由于各种问题,连接池异常复杂。人们经常说获得数据库连接很昂贵,但是我没有发现确实如此。
您说您遇到了一些麻烦,但未指定。保持开放连接听起来像是一种错误的解决方法。您可能会加重您的问题。您应该直接解决这些问题,而不要猜测解决方法。数据库工作太重要了,不能随意摆弄。
跨线程,不。
每个线程需要自己的Connection
来提交自己的查询并处理自己的ResultSet
对象。