用 jdbc 注意問題

2021-07-13 01:41:59 字數 765 閱讀 1295

用jdbc不多,以前都是用現成的框架mybatis 中的sqlmap 對映,以後遇到問題就在下面加一項總結。

最近的專案裡面用的jdbc比較多,所有的資料庫增刪改查都是jdbc ,這樣寫好不好就不說了,上週寫了個功能,查資料庫的,更新上去後一直出問題,資料庫連線的時候報錯,導致專案無法登陸,查問題的時候定位到我寫的模組,發現了隱患。具體情況是這樣的,活動分三擋,每檔有個充值人數達標,每檔下面又分無條件領獎,有充值領獎和充值數量條件領獎,我的做法是統計當天充值的人數,要查詢當天的充值人數人次,然後統計充值的人數,儲存每個人當天充值的數量。根據這些資料去判斷活動獎勵的狀態。

因為每個充值的表根據玩家的id尾數分成了9個表,所以要取資料庫9次,然後我就寫了個for迴圈,9次取資料,

類似這樣

connection conn = null;

preparedstatement ppstat = null;

resultset rest = null;

string sql = "";for (int i = 0; i < 9; i++)

大意疏忽了獲取connection 的時候 發現每次獲取都會定義乙個新的connection 然後return。

我使用完之後 只關閉了最後的乙個連線,這個活動每天都請求一次,so 過不了幾天就超過資料庫連線池最大連線數,so以後登入請求查詢資料庫的時候獲取不到連線就出了問題了。查到問題後修改了一下 ,for迴圈拿到外面,每次請求乙個表然後關閉連線。

JDBC用ResultSet插入記錄注意事項?

1.select語句不能用 必須用select a,b,c from table.a,b,c是要insert的字段 2.select語句只能是單錶,不能存在兩個或以上的表。3.updatestring的字段必須在select語句中列出。如上面,只能更新或插入a,b,c欄位 4.用resultset....

使用JDBC引數要注意的問題一

注意區別下面兩個語句 update loginuser set name and password where id committed update loginuser set name password where id committed 哪個是正確的,哪個又是錯誤的呢?同樣都執行了,後者是正...

用UML建模需要注意的問題

用 uml建模時,對軟體開發過程是有要求的,必須是用例驅動,以架構為中心,迭代和遞增的開發,如果軟體開發組織的軟體開發過程不能滿足這三點要求,那麼 uml的使用效果就會大打折扣,下面詳細論述 一 用例驅動 用例驅動意味著為系統定義的用例是整個開發過程的基礎。用例在多個核心工作流程中都發揮了作用。1 ...