什么时候必须关闭数据库连接?(JAVA)

mat*_*key 2 java postgresql jdbc

所以我有一个Java进程无限期地作为TCP服务器运行(从另一个进程接收消息,并具有onMsg处理程序).

我想用Java程序中的消息做的事情之一是使用与postgres的数据库连接将其写入磁盘.现在,我有一个静态连接对象,我每次收到消息时都会调用它.我不会关闭并重新打开每条消息的连接.

我对Java仍然有点新意,我想知道1)使用一个无限期打开的连接对象是否存在任何陷阱或危险; 2)从不关闭连接是否有性能优势,而不是重新打开/关闭每个连接对象我想打数据库的时候?

谢谢您的帮助!

Jon*_*eet 6

我不关闭并重新打开每条消息的连接.

是的,你做...至少就普通Connection物体而言.否则,如果你最终断开连接,它将永远被打破,如果你需要同时执行多个操作,你将遇到问题.

你想要的是一个连接池来管理与数据库的"真正"连接,你只需要从池中为每个操作请求连接,并在完成后关闭它.关闭"逻辑"连接只会返回到池的"真实"连接以进行另一个操作.(池可以处理心跳保持连接,随着时间的推移退休连接等)

有很多可用的连接池技术,自从我使用"普通"JDBC以来已经很长时间了,所以我不想说现在的最新技术水平 - 但这是你可以做的研究你自己:)