我尽可能彻底地审核了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方法中明确关闭它吗?我的讲师可能甚至不会标记我,但如果我不使用汇集,我想做得对。我还将关闭在应用程序结束时传递参数的类中的连接。
答案 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( );
}
你可以这样做。每次查询后都不需要关闭连接,创建连接对象是一项耗时的任务,在不需要时关闭它。