我已经查看了 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/