mybatis一對多insert mybatis plus如何設(shè)置機(jī)器id和數(shù)據(jù)庫id?
mybatis plus如何設(shè)置機(jī)器id和數(shù)據(jù)庫id?Mybatis自動遞增主鍵配置:Mybatis插入時,如果表的主鍵是自動遞增的,則不同數(shù)據(jù)庫對應(yīng)的操作不同。基本上,我們經(jīng)常遇到Oracle序列和
mybatis plus如何設(shè)置機(jī)器id和數(shù)據(jù)庫id?
Mybatis自動遞增主鍵配置:
Mybatis插入時,如果表的主鍵是自動遞增的,則不同數(shù)據(jù)庫對應(yīng)的操作不同。基本上,我們經(jīng)常遇到Oracle序列和MySQL自增主鍵。主要介紹mybatis中自動遞增主鍵的配置。
1. 不返回自動遞增的主鍵值:
如果您認(rèn)為插入數(shù)據(jù)的主鍵不作為其他表插入數(shù)據(jù)的外鍵,可以考慮此方法。
Oracle Sequence Configuration
mybatis中insert和insertSelective有什么區(qū)別?
for insert//插入一段數(shù)據(jù)//支持Oracle Sequence、UUID和類似MySQL的索引自動增長(自動回寫)//對傳入的參數(shù)值賦予優(yōu)先級。當(dāng)參數(shù)值為空時,將使用序列和UUID并執(zhí)行自動增長。insertselective//插入一段數(shù)據(jù)時,只插入非空的字段,默認(rèn)值的字段不受影響,保持類似MySQL的Oracle序列、UUID和索引自動增長(自動回寫)//對傳入的參數(shù)值賦予優(yōu)先級。當(dāng)參數(shù)值為空時,將使用序列和UUID。似乎只有主鍵可以寫在語句中。如果沒有,請編寫另一個方法來獲取序列并將其插入到一起。
Mybatis中insert語句里面有多個序列該怎么寫?
預(yù)期結(jié)果:插入用戶并在插入后獲取主鍵ID。以下是配置信息:如果要插入并返回Id1mybatisuserMapper.xml2文件,打印受影響的行,并返回主鍵ID3。結(jié)果出乎意料。ID為null,受影響的行為負(fù)數(shù)。例如,(1)order=“before”selectkey=selectlastinsertID(),result ID=0,r=-2147482646(2)order=“before”selectkey=select23,result ID=23,r=-2147482646(3)order=“after”selectkey=select23,result ID=nullr=同上
mybatis執(zhí)行insert。實際上,mybatis只匯編SQL語句。至于SQL的最終執(zhí)行,它仍然在數(shù)據(jù)庫中,因此insert語句的執(zhí)行效率也與數(shù)據(jù)庫有關(guān)。