如果我有一个处理数据库的java代码,我想在我的应用程序中使用多线程。每个线程都假设运行一个包含数据库插入的函数。我的问题是:我应该在哪里发表以下声明:
Connection con = DriverManager.getConnection (dbUrl);
query = " insert into schema.table values (default,?,?)";
preparedStmt = con.prepareStatement(query);
我应该将它们放在run
中,以便每个线程执行它们吗?或者在Main
,所以他们只执行一次?或者在run
函数调用的函数内部?当我有多线程时,我需要知道插入数据库的正确方法。感谢。
答案 0 :(得分:2)
您应该考虑创建一个ConnectionPool并从此池获取与数据库相关的工作的连接。
您可能会对以下两个链接感兴趣:
Connection Pooling
Apache Commons DBCP
修改 感谢@MJB指出这个:
c3p0是另一个非常好的。
BoneCP是另一个
但是在一天结束时,简单的一点是:您需要实现连接池。您选择哪一个完全是您的决定,并根据您的要求。