MYSQL插入一条数据并返回自增id

谜风 2020-11-26 05:29:35
mybits mapper 的书写方式
写法如下:(干货)

亲测 都可使用


方法一:
SELECT LAST_INSERT_ID()


<insert id="add" parameterType="com.hsedo.onepiece.pojo.Edo_Tips">

insert into `edo_trip` (Title,LineTypeId,LineType,ClassTypeId,ClassType,RouteId,SeatCount,Price,StartDate,CarNo,Driver,DriverHelper,DriverHelperMobile,
Data1,Data2,Data3,Data4,Data5,CDate) values
(#{Title},#{LineTypeId},#{LineType},#{ClassTypeId},#{ClassType},#{RouteId},#{SeatCount},#{Price},#{StartDate},#{CarNo},#{Driver},#{DriverHelper},#{DriverHelperMobile},
#{Data1},#{Data2},#{Data3},#{Data4},#{Data5},#{CDate})

<selectKey resultType="Integer" keyProperty="ID" order="AFTER">

SELECT LAST_INSERT_ID() AS ID

</selectKey>


</insert>


注意点:1。这个标签是写在里面的
2.别忘了写order属性
3.dao层不用接收,我的dao写法如下:
void insertBug(Map<String, Object> params);
4.业务层接收返回的id参数:
Integer id = (Integer) params.get(“id”);
也就是返回的id也在请求参数params里面,这样就可以了。
5.SELECT LAST_INSERT_ID() AS id的使用也可以用别的如:
@@identity

selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的参数(这里的parameterType)的主键里面:
①keyProperty 对应的model中的主键的属性名,这里是 user 中的id,因为它跟数据库的主键对应
②order =“AFTER” 表示 SELECT LAST_INSERT_ID() 在insert执行之后执行,多用与自增主键,
BEFORE 表示 SELECT LAST_INSERT_ID() 在insert执行之前执行,这样的话就拿不到主键了,
这种适合那种主键不是自增的类型
resultType 主键类型


方法二:
#insert




<insert id="add" useGeneratedKeys="true" keyColumn="ID"
keyProperty="ID" parameterType="com.hsedo.onepiece.pojo.Edo_Tips">

insert into `edo_trip` (Title,LineTypeId,LineType,ClassTypeId,ClassType,RouteId,SeatCount,Price,StartDate,CarNo,Driver,DriverHelper,DriverHelperMobile,
Data1,Data2,Data3,Data4,Data5,CDate) values
(#{Title},#{LineTypeId},#{LineType},#{ClassTypeId},#{ClassType},#{RouteId},#{SeatCount},#{Price},#{StartDate},#{CarNo},#{Driver},#{DriverHelper},#{DriverHelperMobile},
#{Data1},#{Data2},#{Data3},#{Data4},#{Data5},#{CDate})


</insert>




#重点:#
keyColumn对应的user_id是数据库的字段,keyProperty的userId对应的实体类SysUserEntity的字段,可以一样,也可以不一样。这里他会自动把生成的user_id放进实体类的,java里面去获取就可以了。
这种方法也是可以的,他会自动把生成 的id放进SysUserEntity里面的对应的id



注意:
这两种方法二者选其一,不可都用
...全文
497 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
谜风 2020-11-26
  • 打赏
  • 举报
回复
引用 他人 网址忘了

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧