詳解mybatis plus使用insert沒有返回主鍵的處理
項目使用springboot搭建。最初的時候是使用mybatis,后來升級到mybatis plus。按照mp的官網(wǎng)介紹,使用mp的insert方法,對于自增的數(shù)據(jù)庫表,mp會把主鍵寫入回實例的對應屬性。但實際操作起來,卻沒有主鍵。
entity 類設置如下:
@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 類設置如下:
@Repository@Mapperpublic interface UserInfoDao extends BaseMapper<UserInfo> { // int insert(UserInfo record); int insertSelective(UserInfo record); UserInfo selectByPrimaryKey(Long logId); int updateByPrimaryKeySelective(UserInfo record);}
Service類調(diào)用userInfoDao的insert方法(此方法是來源于BaseMapper)。但是insert成功后沒有返回主鍵userId。上網(wǎng)查了下,其他人都是這樣設置,就會有主鍵返回。
看到dao類里面一條注釋,// int insert(UserInfo record); ,心里有個想法。
這條注釋對應的insert方法,是使用mybatis generator生成的。但是因為此方法名和mybatis plus的通用方法名一樣,所以我把它注釋了。會不會是因為dao對應的mapper.xml文件,里面的id = inesert的sql語句依然存在,從而覆蓋掉了mybatis plus的通用insert,所以沒有自動返回主鍵。
點進去對應mapper.xml文件,果然看到<insert id='insert'>的sql語句。刪掉該語句,重試mybatis plus的insert方法,這次有主鍵返回了。
到此這篇關于詳解mybatis plus使用insert沒有返回主鍵的處理的文章就介紹到這了,更多相關mybatis plus insert沒有主鍵內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!
相關文章:
1. 解析:不能忽視的Oracle 10g STATSPACK2. 如何查看SQL SERVER的版本3. 教你在Windows環(huán)境下Kill掉Oracle的線程4. Mybatis如何實現(xiàn)延遲加載及緩存5. 如何使用Pycharm連接SQL Sever(詳細教程)6. SQL中使用ESCAPE定義轉(zhuǎn)義符詳解7. SqlServer服務中利用觸發(fā)器對指定賬戶進行登錄ip限制提升安全性操作8. Mysql官方性能測試工具mysqlslap的使用簡介9. Windows系統(tǒng)徹底卸載SQL Server通用方法(推薦!)10. Mysql InnoDB的鎖定機制實例詳解
