Mybatis的乙個小坑

2021-08-20 04:17:10 字數 1147 閱讀 8790

以前一直用的ibatis,前陣子才改用的mybatis,對於一些細節不太了解,所以踩了這個坑。廢話不多說,上**。

下面是出問題的sql語句:

insert into g_label_obj_relation_his

(id_label_obj_relation,

id_label,

followed_obj_code,

followed_obj_role,

label_source,

add_person,

add_person_role,

created_by,

date_created,

updated_by,

date_updated,

delete_person,

delete_date)

select sys_guid(),

rel.id_label,

rel.followed_obj_code,

rel.followed_obj_role,

rel.label_source,

rel.add_person,

rel.add_person_role,

rel.created_by,

rel.date_created,

rel.updated_by,

rel.date_updated,

#,sysdate

from g_label_obj_relation rel

where rel.id_label_obj_relation = #

。複製一下那位大哥的回答:

我也遇到了同樣的問題,語句是正常的,我找了一下原因 是mybatis的這個usegeneratedkeys屬性的問題,

官網的解釋是  

允許 jdbc 支援自動生成主鍵,需要驅動相容。如果設定為 true 則這個設定強制使用自動生成主鍵,儘管一些驅動不能相容但仍可正常工作(比如 derby)。

我寫成了這樣就不報錯了

於是我去**裡找了一下usegeneratedkeys,果然看到了這個屬性為true:

複製**

於是在標籤裡加上了usegeneratedkeys="false",果然可以正常執行了。這個是關於usegeneratedkeys引數的一些拓展說明:

mongodb的乙個小坑

若collection裡有其他的資料,顯示時注意要往query裡新增true,並且需要放在最前面。解釋 下圖是名為test的collection裡面的資料。可以看到上面5條是一樣的資料,第6條是為了測試故意新增進去的。首先,當你執行命令db.getcollection test find 結果如下。...

sprintf sscanf中的乙個小坑

char buf 32 sprintf buf,s,d test 100 char out 32 int i 0 sscanf buf,s,d out,i 這段 開始以為會正常執行,結果卻是crash。sscanf在解析 s的時候遇到空格 指標符號 n才會停止解析,而這個 s後面的逗號基本上是乙個擺...

最近踩的乙個小坑

最近需要實現乙個業務,大致的內容是為了提高效率,把資料庫中的資訊定時同步到記憶體中,然後使用記憶體查詢,提高效率。然後在實現過程中遇到了乙個問題,需要同步的資訊約9萬條,但是這9w條資料對應了133w個,大概乙個id十幾張吧。儲存這些的時候,遇到了小問題。專案原本使用的結構是 list vin1,1...