orm對映
1.在表查詢中,一律不要使用 * 作為查詢的字段列表,需要哪些字段必須明確寫明。 說明:1 ) 增加查詢分析器解析成本。2 ) 增減字段容易與 resultmap 配置不一致。
2. pojo 類的 boolean 屬性不能加 is ,而資料庫字段必須加 is _,要求在 resultmap 中進行欄位與屬性之間的對映。
3.不要用 resultclass 當返回引數,即使所有類屬性名與資料庫字段一一對應,也需要定義 ; 反過來,每乙個表也必然有乙個與之對應。
說明:配置對映關係,使字段與 do 類解耦,方便維護。
4.sql.xml 配置引數使用:#{},# param # 不要使用${} 此種方式容易出現 sql 注入。
5. ibatis 自帶的 queryforlist(string statementname , int start , int size) 不推薦使用。
說明: 其實現方式是在資料庫取到 statementname 對應的 sql 語句的所有記錄, 再通過 sublist取 start , size 的子集合,線上因為這個原因曾經出現過 oom 。
6.不允許直接拿 hashmap 與 hashtable 作為查詢結果集的輸出。說明: resultclass="hashtable",會置入欄位名和屬性值,但是值的型別不可控。
7.更新資料表記錄時,必須同時更新記錄對應的 gmt _ modified 字段值為當前時間。
8.不要寫乙個大而全的資料更新介面,傳入為 pojo 類,不管是不是自己的目標更新字段,都進行 update table set c1=value1,c2=value2,c3=value3; 這是不對的。
執行 sql時,盡量不要更新無改動的字段,一是易出錯 ; 二是效率低 ; 三是 binlog 增加儲存。
9.@ transactional 事務不要濫用。事務會影響資料庫的 qps ,另外使用事務的地方需要考慮各方面的回滾方案,包括快取回滾、搜尋引擎回滾、訊息補償、統計修正等。
10.< isequal >中的 comparevalue 是與屬性值對比的常量,一般是數字,表示相等時帶上此條件 ;
< isnotempty >表示不為空且不為 null 時執行 ; < isnotnull >表示不為 null 值時執行。
阿里巴巴開發手冊
反例 string str start for int i 0 i 100 i 2 注意 math.random 這個方法返回是double型別,注意取值的範圍 0 x 1 能夠取到零值,注意除零異常 如果想獲取整數型別的隨機數,不要將x放大10的若干倍然後取整,直接使用random物件的nexti...
學習阿里巴巴開發手冊 6
1.在switch塊內,每個case通過break return等終止,或者說明繼續執行到那個case為止。每個switch塊內,必須包含乙個default語句且放在最後。即使什麼沒有。2.if else for while do語句中必須使用大括號,即使一行 3.表達異常的分支時,少用if els...
學習阿里巴巴開發手冊 補充
1.獲取單例物件需要保證執行緒安全,其中的方法也要保證執行緒安全。2.建立執行緒或執行緒池時 請指定有意義的執行緒名稱。3.執行緒資源必須通過執行緒池提供,不允許在應用中自行顯示建立執行緒。4.執行緒池不允許使用executors去建立,而是通過threadpoolexecutor的方式 5.dat...