在Qt中,需要完成幾個步驟才能完成數據庫訪問。管理數據庫和連接的生命週期
的第一步是連接名稱添加數據庫:
QSqlDatabase::addDatabase("QMYSQL", connectionName);
在此之後,我可以使用open()
和close()
打開/關閉相應的連接。
該數據庫也可以使用下面的調用將其刪除:
QSqlDatabase::removeDatabase(connectionName);
我的應用程序這個了很多,因爲它訪問的並行處理各種數據庫進行了大量的目的。它也是一個服務器應用程序,運行很長時間而不會重新啓動。
在我看來很明顯,由於可能的網絡問題和服務器端的有限連接,始終保持連接打開是一個糟糕的主意。
但是addDatabase()
呢?在撥打addDatabase()
而沒有直接撥打removeDatabase()
後(但僅在應用程序退出時)是否有任何傷害或好處?或者在任何時候直接配對這些電話會更好嗎?
目前,如果使用contains()之前添加了連接名稱,我不會調用addDatabase()。所以我可以防止連接被不必要地替換。 – Silicomancer 2014-12-04 07:07:09
你是否知道在每次訪問之前/之後調用addDatabase()/ removeDatabase()時可以花費多少代價(從很多不必要的代碼行開始)? – Silicomancer 2014-12-04 07:07:31
@Silicomancer如果您使用許多具有相同連接名稱的'QSqlDatabase'對象,那麼如果在每個使用的部分中添加數據庫,則可能會產生大量開銷。這是因爲當您調用addDatabase時,所有使用相同連接名稱的'QSqlDatabase'對象都會更改。我更新了答案。 – Nejat 2014-12-04 07:21:27