ibatis mysql使用sql函式注意點

2021-09-07 23:58:21 字數 563 閱讀 1085

1、前奏:

select getcataid(#pid#);

2、問題描述:

在function操作一次之後(假設輸入引數為1000000000),再次操作(輸入2000000000)就發生異常。

檢視異常:

無發現getcataid('1000000000')colume

3、分析:

原來ibatis這裡多此一舉,把底層操作交付jdbc,再儲存此sql的列名(getcataid('1000000000')),導致操作

getcataid('2000000000')

完畢後,再通過列名

getcataid('1000000000')

去找2000000000的結果,那肯定是無法找到此列。

4、解決辦法:

多個as ,這樣就能處理識別問題了。

select getcataid(#pid#) as ***;

5、總結

ibatis應該是快取第一次查詢的列名,下次繼續儲存此列名用來識別記錄,所以使用ibatis要注意某些含參查詢(如function),最好帶上as。

ibatis mysql批量查詢

最近寫到的功能,牽扯到批量查詢,使用的一般的分頁查詢,步驟如下 integer pagesize 3000 1.先查詢記錄數 select count from table name where batch no 2.獲取記錄數並使用在業務層做分頁 integer pagenum count pag...

ibatis mysql 效能 Ibatis 優化

大概一年左右的時間裡club資料庫的cpu一直處於很高的負荷中,從40 一直攀公升到如今的80 隨著資料量的增加,負擔越來越重,已經頻繁超時,且瀕臨無法服務的邊緣。經長期的調查發現這是ibatis.net的乙個效能問題 同樣適用於ibatis 問題是這樣的 club的主要業務表是comment表,其...

mysql profiling的使用與sql分析

mysql在5.0.3版本之後新增了profiling來進行效能分析 首先進入資料庫 show profiles mysql預設是關閉的,也就是off 需要設定成1開啟,也就是on,注意設定以後退出視窗之後會還原,要永久生效貌似需要重啟mysql才行 檢視是否開啟 開啟 set profiling ...