mybatis 获取自增主键Id值案例

1、Mapper配置文件:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hyc.www.dao.MenuMapper">


    <resultMap type="com.hyc.www.pojo.Menu" id="menu">
        <id property="menuId" column="menuId" />
        <result property="menuName" column="menuName" />
        <result property="sortNumber" column="sortNumber" />
    </resultMap>
    
    
    <insert id="insert" parameterType="menu" useGeneratedKeys="true" keyProperty="menuId">
    insert into 
    Menus
    (
    menuName,
    sortNumber
    )
    values
    (
    #{menuName},
    #{sortNumber}
    )
    </insert>
    
    <insert id="insertMenuAction" parameterType="menuAction">
    insert into 
    MenuAction
    (
    menuId,
    actionId
    )
    values
    (
    #{menuId},
    #{actionId}
    )
    </insert>
    
</mapper> 
复制代码

2、controller

复制代码
@Autowired
    private MenuService menuService;
    
    @RequestMapping(value = "/add", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")
    @ResponseBody
    @ApiOperation(value = "add menu", notes = "添加菜单")
    @ApiResponse(response= String.class, code = 200, message = "接口返回对象参数")
    public String add(@RequestBody Menu menu) {
        
        try {
            
            if(menu==null) {
                return "fail";
            }
            menuService.insert(menu);
            for (Integer aId : menu.getActionIds()) {
                MenuAction rAction = new MenuAction();
                rAction.setActionId(aId);
                rAction.setMenuId(menu.getMenuId());
                
                menuService.insertMenuAction(rAction);
            }
            return "success";
        } catch (Exception e) {
            e.printStackTrace();
            return "fail";
        }
    }
复制代码

当调用menuService.insert(menu)方法后,menuId值已经赋值给了menu对象,直接使用menu.getMenuId()获取自增主键Id值。

posted @   大空白纸  阅读(816)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示