【问题标题】:Connect to MySQL DB using multi-threading使用多线程连接到 MySQL DB
【发布时间】:2012-07-07 16:11:12
【问题描述】:

如果我有一个处理数据库的 java 代码并且我想在我的应用程序中使用多线程。每个线程都假设运行一个包含插入数据库的函数。我的问题是:我应该在哪里放置以下语句:

Connection con = DriverManager.getConnection (dbUrl);
query = " insert into schema.table values (default,?,?)";   
preparedStmt = con.prepareStatement(query);

我应该将它们放在run 中以便每个线程都执行它们吗?或在Main 中,所以它们只执行一次?还是在run 函数调用的函数内部?当我有多线程时,我需要知道插入数据库的正确方法。谢谢。

【问题讨论】:

    标签: java mysql multithreading


    【解决方案1】:

    您应该考虑为您的数据库相关工作创建一个 ConnectionPool 并从此池中获取连接。

    您可能会感兴趣以下两个链接:

    Connection Pooling
    Apache Commons DBCP

    编辑 感谢@MJB 指出这一点
    c3p0 是另一个非常好的。
    BoneCP 是另一个一个

    但归根结底,简单的一点是:您需要实现连接池。您选择哪一个完全是您的决定,并基于您的要求。

    【讨论】:

    • 连接池可能是处理这个问题的最好方法。如果其他线程执行不同类型的作业,您还可以考虑将消息传递给处理数据库交互的线程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2016-06-05
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    相关资源
    最近更新 更多