文件首頁
MySQL Connector/J 開發人員指南
相關文件 下載本手冊
PDF (US Ltr) - 1.2Mb
PDF (A4) - 1.2Mb


MySQL Connector/J 開發人員指南  /  Connector/J 支援  /  如何回報 Connector/J 的錯誤或問題

18.2 如何回報 Connector/J 的錯誤或問題

回報錯誤的正常位置是 http://bugs.mysql.com/,這是我們錯誤資料庫的位址。此資料庫是公開的,任何人都可以瀏覽和搜尋。如果您登入系統,您也可以輸入新的回報。

如果您在 MySQL 伺服器中發現敏感的安全性錯誤,請立即傳送電子郵件訊息至 來通知我們。例外狀況:支援客戶應向 Oracle 支援部門回報所有問題,包括安全性錯誤,網址為 http://support.oracle.com/

撰寫良好的錯誤回報需要耐心,但第一次就正確完成可以節省我們和您自己的時間。良好的錯誤回報包含完整的錯誤測試案例,可以提高我們盡快修正的可能性。

本節將協助您正確撰寫回報,以便您不會浪費時間執行可能對我們沒有幫助或完全沒有幫助的事情。

如果您有可重複的錯誤回報,請將其回報至錯誤資料庫,網址為 http://bugs.mysql.com/。我們能夠重複的任何錯誤都有很高的機會盡快修正。

若要回報其他問題,您可以使用其中一個 MySQL 郵件清單。

請記住,我們有可能回覆包含過多資訊的訊息,但無法回覆包含過少資訊的訊息。人們常常會遺漏事實,因為他們認為自己知道問題的原因,並假設某些細節並不重要。

一個好的原則是:如果您對陳述某些事情有疑問,請陳述它。在您的回報中多寫幾行比等待更長的時間來獲得答案要快且麻煩少,因為如果我們必須要求您提供初始回報中遺失的資訊。

錯誤回報中最常犯的錯誤是 (a) 未包含所使用的 Connector/J 或 MySQL 的版本號碼,以及 (b) 未充分描述安裝 Connector/J 的平台(包括 JVM 版本,以及安裝 MySQL 本身的平台類型和版本號碼)。

這是高度相關的資訊,在 99% 的情況下,沒有這些資訊,錯誤回報是無用的。我們經常會收到類似 為什麼這個對我不起作用?的問題。然後我們發現所要求的功能未在該 MySQL 版本中實作,或者回報中描述的錯誤已在較新的 MySQL 版本中修正。

有時錯誤與平台相關;在這種情況下,如果不知道作業系統和平台的版本號碼,我們幾乎不可能修正任何問題。

如果可能,請建立可重複的獨立測試案例,其中不涉及任何第三方類別。

為了簡化此流程,我們隨附一個 Connector/J 的測試案例基底類別,名為 'com.mysql.cj.jdbc.util.BaseBugReport'。若要使用此類別建立 Connector/J 的測試案例,請建立您自己的類別,該類別繼承自 com.mysql.cj.jdbc.util.BaseBugReport,並覆寫方法 setUp()tearDown()runTest()

setUp() 方法中,建立程式碼,以建立您的表格,並使用任何示範錯誤所需的資料來填入它們。

runTest() 方法中,建立程式碼,以使用您在 setUp 方法中建立的表格和資料來示範錯誤。

tearDown() 方法中,刪除您在 setUp() 方法中建立的任何表格。

在上述三個方法中的任何一個中,使用 getConnection() 方法的其中一個變體來建立與 MySQL 的 JDBC 連線

  • getConnection() - 提供與 getUrl() 中指定的 JDBC URL 的連線。如果連線已存在,則會傳回該連線,否則會建立新的連線。

  • getNewConnection() - 如果您需要為您的錯誤回報取得新的連線(也就是說,涉及多個連線),請使用此方法。

  • getConnection(String url) - 使用給定的 URL 傳回連線。

  • getConnection(String url, Properties props) - 使用給定的 URL 和屬性傳回連線。

如果您需要使用與 'jdbc:mysql:///test' 不同的 JDBC URL,請同時覆寫方法 getUrl()

使用 assertTrue(boolean expression)assertTrue(String failureMessage, boolean expression) 方法來建立必須在您的測試案例中滿足的條件,以示範您所預期的行為(相對於您正在觀察的行為,這就是您最有可能提交錯誤回報的原因)。

最後,建立 main() 方法,該方法會建立您的測試案例的新執行個體,並呼叫 run 方法

public static void main(String[] args) throws Exception {
      new MyBugReport().run();
 }

當您完成測試案例,並驗證其示範您要回報的錯誤後,請將其與您的錯誤回報上傳至 http://bugs.mysql.com/