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

时间:2016-11-03 04:10:08

标签: 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次和最后的create table方法中明确关闭它吗?我的讲师可能甚至不会标记我,但如果我不使用汇集,我想做得对。我还将关闭在应用程序结束时传递参数的类中的连接。

1 个答案:

答案 0 :(得分:1)

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( );
}  

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