会不会是因为dao对应的mapper.xml文件,里面的id = inesert的sql语句依然存在,从而覆盖掉了mybatis plus的通用insert,所以没有自动返回主键。 点进去对应mapper.xml文件,果然看到<insert id="insert">的sql语句。删掉该语句,重试mybatis plus的insert方法,这次有主键返回了。
若在insert中写selectKey,倒是可以返回id,但原本项目大量使用mybatis-plus自带的insert方法,故不大合适。
LongtestInsert(MessageMould messageMould); AI代码助手复制代码 调用这个插入语句,information这个实例时没有定义id,创建时间这些字段的,输出结果是数据表修改条数,这里插入一条,所以返回1。 System.out.println(messageMouldMapper.testInsert(information)+“---”); AI代码助手复制代码 然后这时候我们输出下information...
<insert id="insertUser" parameterType="User" useGeneratedKeys="true"> insert into user (name, age) values (#{name}, #{age})</insert> 设置 keyProperty 属性 keyProperty 属性的作用是指定主键 ID 赋值的目标属性。在配置文件中,我们可以在 insert 元素中设置 keyProperty 属性:<insert id="insertUs...
👨💻面试官:你说Mybatis执行插入语句后可以返回主键ID吗??如果能的话,能否实现一下。 🙋我:当然是可以的,连JDBC都能做到的事情,Mybatis也能做到的。 开始敲代码… 1.1、Mysql数据库设置ID自增情况 代码语言:javascript 复制 <insert id="insertUser"parameterType="com.crush.mybatisplus.entity.User...
Useruser=newUser();user.setName("李小白");user.setDynasty("明朝");UserMapper.insert(user); 重现步骤(如果有就写完整) 报错信息 没有报错,参考了issues里边,都是说可以直接返回id,可是我的没有返回主键ID Author moudaycommentedDec 7, 2020
出现这个问题,只需把对应的字段注解设置为,例如: @TableId(value = "id",type = IdType.INPUT) private String id; 即可解决这个报错。
如果我们使用了数据库自增主键并且希望insert方法都返回主键ID,需要配置一下实体类的主键 publicclassWeb_user{@TableId(type=IdType.AUTO)privatelong user_id;privateString user_tel;privateString user_pwd;privateLong createtime;privateLong modifytime;privateLong last_visit_time;} ...
后来了解到 使用 mybatis-plus的insert方法,在底层会默认生成一个Long类型的UUID,这就导致跟数据库里面类型不一致导致错误,我们首先要做的是要把这个默认自增的主键给禁了 在实体类 id上面加一个注解 @TableId(value ="id",type= IdType.INPUT)private Stringid; ...