詳解mybatis plus使用insert沒(méi)有返回主鍵的處理
項(xiàng)目使用springboot搭建。最初的時(shí)候是使用mybatis,后來(lái)升級(jí)到mybatis plus。按照mp的官網(wǎng)介紹,使用mp的insert方法,對(duì)于自增的數(shù)據(jù)庫(kù)表,mp會(huì)把主鍵寫(xiě)入回實(shí)例的對(duì)應(yīng)屬性。但實(shí)際操作起來(lái),卻沒(méi)有主鍵。
entity 類(lèi)設(shè)置如下:
@TableName(value = 'USERINFO')public class UserInfo { /** * 指定自增策略 */ @TableId(value = 'user_id',type = IdType.AUTO) private Long userId; private String gender; private Date birthday; private String phone;//省略后面的其他屬性和getter/setter}
dao 類(lèi)設(shè)置如下:
@Repository@Mapperpublic interface UserInfoDao extends BaseMapper<UserInfo> { // int insert(UserInfo record); int insertSelective(UserInfo record); UserInfo selectByPrimaryKey(Long logId); int updateByPrimaryKeySelective(UserInfo record);}
Service類(lèi)調(diào)用userInfoDao的insert方法(此方法是來(lái)源于BaseMapper)。但是insert成功后沒(méi)有返回主鍵userId。上網(wǎng)查了下,其他人都是這樣設(shè)置,就會(huì)有主鍵返回。
看到dao類(lèi)里面一條注釋?zhuān)?/ int insert(UserInfo record); ,心里有個(gè)想法。
這條注釋對(duì)應(yīng)的insert方法,是使用mybatis generator生成的。但是因?yàn)榇朔椒蚼ybatis plus的通用方法名一樣,所以我把它注釋了。會(huì)不會(huì)是因?yàn)閐ao對(duì)應(yīng)的mapper.xml文件,里面的id = inesert的sql語(yǔ)句依然存在,從而覆蓋掉了mybatis plus的通用insert,所以沒(méi)有自動(dòng)返回主鍵。
點(diǎn)進(jìn)去對(duì)應(yīng)mapper.xml文件,果然看到<insert id='insert'>的sql語(yǔ)句。刪掉該語(yǔ)句,重試mybatis plus的insert方法,這次有主鍵返回了。
到此這篇關(guān)于詳解mybatis plus使用insert沒(méi)有返回主鍵的處理的文章就介紹到這了,更多相關(guān)mybatis plus insert沒(méi)有主鍵內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. SQLITE3 使用總結(jié)2. SQLite教程(二):C/C++接口簡(jiǎn)介3. 連接Oracle數(shù)據(jù)庫(kù)失敗(ORA-12514)故障排除全過(guò)程4. DB2專(zhuān)家王云談商業(yè)智能BI5. 把SQL SERVER里表里的數(shù)據(jù)導(dǎo)出成為insert into 腳本6. Mysql入門(mén)系列:MYSQL列類(lèi)型選擇與MYSQL查詢(xún)效率7. 八步解決ACCESS自動(dòng)編號(hào)問(wèn)題(將SQL SERVER 2000數(shù)據(jù)庫(kù),轉(zhuǎn)換為ACCESS數(shù)據(jù)庫(kù))8. centos 7安裝mysql5.5和安裝 mariadb使用的命令9. SQLite教程(十三):C語(yǔ)言編程實(shí)例代碼(1)10. Access出現(xiàn)"所有記錄中均未找到搜索關(guān)鍵字"的錯(cuò)誤解決

網(wǎng)公網(wǎng)安備