2011-10-05 47 views
1

我正在使用JDBC.My測試應用程序向MySQL插入一些數據,然後通過相同的連接查詢它。我有四臺計算機,一臺是MySQL服務器,三臺是UBuntu Desktops.In一個UBuntu桌面,我的測試應用程序遇到了這個問題,但我在其他UBuntu桌面中找不到這個問題。 另外,如果我插入後創建一個新的查詢數據連接,我可以找到數據。 mysql-connector-java庫的版本是5.1.17.I試過5.1.18,但問題依然存在。無法立即從MySQL中看到插入的數據

+2

您是否正在使用適當的JDBC方式打開和關閉'try-finally'塊中的所有資源?你在使用連接池嗎?如果有的話?您在其中一臺機器上遇到的問題聽起來就像連接從未提交/關閉一樣。 – BalusC

+1

並且這個連接是否自動提交,或者你是否在寫入和讀取之間進行手動提交?如果沒有,那麼提交可能會有所幫助。 –

回答

2

MySQL的默認隔離級別是「REAPEATABLE READ」,這意味着如果您在查詢工具中沒有使用自動提交,您將不會看到來自其他事務的提交數據,而是通過發出COMMIT或ROLLBACK結束自己的事務。

創建新連接後可以看到數據的事實也指向該方向。

所以,你有兩個選擇

  1. 變化的隔離級別的「查詢」連接到「READ COMMITTED」
  2. 問題上提交(或回滾)在查詢工具運行SELECT