才參加工作不久,很多代碼習慣還沒養成,昨天按要求寫的資料庫基本增刪改查操作,在使用這些方法的時候,雖然能實現功能,但是效率低下,還可能產生記憶體問題,今天被項目經理一頓教育,在此記錄學到的教訓。 mybatis中重覆的代碼使用sql和include標簽進行封裝和調用 資料庫操作使用的是mybatis框 ...
才參加工作不久,很多代碼習慣還沒養成,昨天按要求寫的資料庫基本增刪改查操作,在使用這些方法的時候,雖然能實現功能,但是效率低下,還可能產生記憶體問題,今天被項目經理一頓教育,在此記錄學到的教訓。
mybatis中重覆的代碼使用sql和include標簽進行封裝和調用
資料庫操作使用的是mybatis框架,可以使用sql標簽將經常重覆的代碼封裝起來,就像java的方法一樣,為了便於重覆使用,sql語句中使用include標簽來調用這段代碼。
這樣寫的好處是,以後修改的時候只需要修改一處代碼即可改動所有,例如使用dynamic標簽動態生成的where條件判斷語句,在多個sql語句中需要使用,可以將這段代碼封裝,在需要這種判斷條件語句的時候,直接調用。
sql和include標簽的使用:http://blog.csdn.net/baidu_31657889/article/details/52101130
對資料庫的查詢儘量拿到需要的最少數據
資料庫的操作是需要非常謹慎的,對於數據的操作最多的無非就是增刪改查,其中查詢又是最頻繁的。select查詢語句可以獲得大量的資料庫數據,但是有的時候拿到全面的數據是不必要的,例如,頁面做了分頁查詢,需要在頁面顯示一個總記錄條目數,這個數據可以查詢出所有的數據,存在一個list裡面,再在java中size()出來,也可以直接sql語句(select count(1) from ***)查詢出一個數值;如果僅僅只是為了拿到條目數這個值,第二種方法會比第一種方法的效率高很多,如果select查詢出來的條目非常大,把所有的對象都拿出來,這樣會對伺服器記憶體造成非常大的壓力,很多時候還會爆記憶體,導致伺服器宕機。所以對資料庫的查詢儘量拿到需要數量的最少數據,完成功能。