mybatis小知识:mysql主键自增返回和开发规范

1. mybatis连接mysql自增主键返回

    通过修改sql映射文件,可以将mysql自增主键返回:

<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User">

<!-- selectKey将主键返回,需要再返回 -->

<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">

select LAST_INSERT_ID()

</selectKey>

   insert into user(username,birthday,sex,address)

    values(#{username},#{birthday},#{sex},#{address});

</insert>


        添加selectKey实现将主键返回

        keyProperty:返回的主键存储在pojo中的哪个属性

        orderselectKey的执行顺序,是相对与insert语句来说,由于mysql的自增原理执行完insert语句之后才将主键生成,所以这里selectKey的执行顺序为after

        resultType:返回的主键是什么类型

        LAST_INSERT_ID():mysql的函数,返回auto_increment自增列新记录id值。

2.Mapper动态代理方式的开发规范

  Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。

Mapper接口开发需要遵循以下规范:

1、 Mapper.xml文件中的namespacemapper接口的类路径相同。

2、  Mapper接口方法名和Mapper.xml中定义的每个statementid相同

3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql parameterType的类型相同

4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sqlresultType的类型相同



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用MyBatis-Plus的`insert`方法来实现新增SQL主键自增,并将新增的主键复制到其他字段。 首先,确保你的实体类中的主键字段使用了`@TableId`注解,并且设置了主键生成策略为自增。例如: ```java import com.baomidou.mybatisplus.annotation.TableId; public class User { @TableId(type = IdType.AUTO) private Long id; private String name; // 其他字段... // 省略getter和setter方法 } ``` 接下来,使用MyBatis-Plus的`insert`方法插入数据,并在插入后获取到新增的主键值。然后,将该主键值赋给其他字段。示例如下: ```java import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Autowired; public class UserService { @Autowired private BaseMapper<User> userMapper; public void insertUser(User user) { userMapper.insert(user); // 获取新增的主键值 Long primaryKey = user.getId(); // 将主键值赋给其他字段 userMapper.update(user, new UpdateWrapper<User>() .eq("id", primaryKey) .set("other_column", primaryKey) ); } } ``` 在上述示例中,我们在插入数据后使用了`update`方法来更新其他字段,将新增的主键值赋给了`other_column`字段。你可以根据实际需求调整相关代码。 希望这可以帮助到你!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值