使用java同时建立多个数据库连接和查询时,我应该使用同步吗?
例如,我已经实现了以下方法:
public static void createAccount() throws IOException, SQLException {
DbManager.createDatabaseConnection();
DbManager.executeSqlUpdateStatement(Account_Creation_Scripts.createAccount_Sql_Command());
DbManager.closeDatabaseConnection();
}
以上方法尽其所能来连接数据库并创建多个帐户。
我的计划是(同时)在多个自动化测试中使用此方法,这将针对目标数据库同时运行此方法。
在以下方法上实现syncenize关键字是一种好习惯:createAccount,createDatabaseConnection,executeSqlUpdateStatement和closeDatabaseConnection?
谢谢
根据您的代码“ DbManager”,内部应具有数据库连接。由于有多个对DbManager的调用,因此为了确保所有调用中都使用相同的Connection对象,必须进行同步。
但是,这不是最佳方法。同步此方法时,在给定时间只能执行一个线程。其余线程将不得不等待,这不是最佳选择。
最佳方法是使用连接池。1.从池中获得连接2.执行您的SQL3.关闭连接(这会将连接返回到池中)
采用这种方法,多个线程将能够同时执行。