java - 可以为多查询方法保持 JDBC 连接打开吗? (数据库使用MySQL)

标签 java mysql jdbc

我已经查看了 this question尽我所能,但感觉所提供的解决方案比我 2 年级本科作业所需的更先进(我没有使用 Java EE,因此不可能进行池化,除非我使用开源软件,我确信我的讲师不会想要,因为工作需要是我自己的)。

我的问题是:我制作了 4 个 createTable 方法,这里是一个,您可以看到它们的结构:

private void createPlayerTable(Connection conn, Statement st)
{
    try 
    {
        st.executeUpdate("CREATE TABLE IF NOT EXISTS Player( "
                + "PlayerName VARCHAR(20)  PRIMARY KEY,  "
                + "DateOfBirth DATE, FIDERating tinyint )");
        System.out.println("Created table: Player ");

    } 

    catch (SQLException ex) 
    {
        // not implemented logic yet 
    }
}

然后我将它们放入 createAllTables 方法中:

public void createAllTable(Connection conn, Statement st)
{
    this.createPlayerTable(conn, st);
    this.createClubTable(conn, st);
    this.createGameTable(conn, st);
    this.createMatchTable(conn, st);
}  

createAllTables 方法是从另一个完全实现数据库模式的类调用的。我是否需要在每次查询后关闭 Connection,还是可以在第 4 个也是最后一个创建表方法中显式关闭它?我的讲师可能不会因此而给我打分,但如果我不使用汇集,我想做对。我还将关闭在应用程序结束时将参数传递到的类中的连接。

最佳答案

public void createAllTable(Connection conn, Statement st)
{
    conn.setAutoCommit(false);
    this.createPlayerTable(conn, st);
    this.createClubTable(conn, st);
    this.createGameTable(conn, st);
    this.createMatchTable(conn, st);
    conn.commit( );
}  

你可以这样做。不需要在每次查询后关闭连接,创建连接对象是一项耗时的任务,在不需要时将其关闭。

关于java - 可以为多查询方法保持 JDBC 连接打开吗? (数据库使用MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393749/

相关文章:

java - 为什么序列化代理模式与对象图包含循环的类不兼容

java - 基本的 JSON-lib 示例

java - 这里不允许使用“void”类型 - 有解决方法吗?

mysql创建函数语法错误

php - 优化我的搜索引擎

java - 可扩展 Java Web 应用程序中的连接池

java - 从 mysql 选择数据但过程抛出 NullPointerException

java - 重写 tostring() 方法并传递对象引用而不获取哈希值

php - 获取数据并使用循环插入它 (MSQL/I)

java - SQL存储过程中多列游标内容的循环插入