mybatis insert操作返回值问题

<selectKey resultType="int"  keyProperty="id" > 
            select LAST_INSERT_ID() 
</selectKey> 

mybatis 返回值是插入的数量,写好这句话以后,我们在service层直接返回插入的对象就好了。Mybatis会自动把插入数据库以后的id填充到当前对象中。

这个返回值肯定一直是1的。

### 回答1: Mybatisinsert语句返回值是int类型,表示插入的记录数。如果插入成功,则返回1,否则返回。如果需要获取插入记录的主键值,可以通过在insert语句中添加useGeneratedKeys="true"和keyProperty="id"属性来实现。这样,在插入成功后,会将主键值自动赋值给id属性。 ### 回答2: MyBatis是一个非常流行的Java持久层框架,其提供了一个插入操作的方法,可以通过该方法向数据库中插入新的数据,该方法返回一个int类型的值。该值的具体含义取决于数据库的特性和返回值类型的设置。下面就该返回值进行详细解释: - 如果返回值为1,则表示数据库中插入了一条数据。 - 如果返回值为n(n>1),则表示数据库中插入了n条数据。 - 如果返回值为0,则表示没有数据被插入。可能的原因包括:数据已存在、插入操作失败等。 - 如果返回值为-1,则表示插入操作发生了异常。 通常情况下,我们可以在MyBatis的Mapper映射文件中通过使用useGeneratedKeys属性来配置插入操作是否需要使用自动生成的主键值,并通过keyProperty属性来指定将自动生成的主键值赋值给哪个实体类的属性。对于MySQL数据库我们还可以使用useGeneratedKeys属性来指定主键自增方式。 需要注意的是,如果出现了插入操作失败的情况,我们还可以通过执行SQL的方式,手动回滚数据库中的数据,以保证数据的一致性。在MyBatis框架中,我们可以通过执行session.rollback()方法来回滚事务。在Java 8中,我们还可以通过使用try-with-resources语法来自动关闭数据库连接,从而避免了手动关闭数据库连接的麻烦。 ### 回答3: Mybatis是一款优秀的ORM框架,我们使用Mybatis插入数据时常常需要获取插入数据的主键值或插入的记录数,因此,Mybatis insert返回值很重要。 在Mybatis中,插入数据时返回值的类型可以是int、long或者void。其类型取决于我们使用的SQL语句。 如果使用的是INSERT INTO语句,返回值为int或long类型,表示影响的行数。在这种情况下,如果返回1表示插入成功,如果返回0表示插入失败。 例如: ```xml <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO user(username, password) VALUES (#{username}, #{password}) </insert> ``` 这里使用了useGeneratedKeys="true"和keyProperty="id"属性,表示插入成功后会自动生成主键id,并将其赋值到User对象中的id属性上。因此,返回值类型为void。 如果使用的是INSERT INTO … VALUES …语句,返回值必须为void类型,因为这种情况下没有插入的主键。 例如: ```xml <insert id="insertUser" parameterType="User"> INSERT INTO user(username, password) VALUES (#{username}, #{password}) </insert> ``` 总结一下,Mybatis insert返回值的类型取决于我们使用的SQL语句。如果使用的是INSERT INTO语句,返回值为int或long类型,表示影响的行数;如果使用的是INSERT INTO … VALUES …语句,返回值必须为void类型。在使用useGeneratedKeys="true"和keyProperty="id"属性时,返回值类型为void,但生成的主键会赋值到指定的属性上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值