本文主要是介绍【项目实践day08】Mybatis向数据库中插入数据的时候返回主键值id,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
应用场景
- 创建一个实体类(订单),现在需要将这个订单插入进数据库。
- 但是在后续的业务逻辑中,需要用到这个订单的id(主键值)
- 由于订单id一般都是自增的,且是插入数据库的时候才会给到的值
- 所以需要在插入数据库之后返回id(主键值)【直接写在实体对象中】
代码实现
-
在serviceImpl中调用orderMapper实现订单的插入操作
- 这里传入的orders是一个实例化好的订单对象
.insert(orders);
-
在orderMapper这个接口中,定义insert的抽象方法
@Mapperpublic interface OrderMapper {/*** @param orders:* @return void* @description 插入订单数据*/void insert(Orders orders);}
-
在orderMapper.xml中书写插入语句
<?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.sky.mapper.OrderMapper"><!-- 插入订单数据--> <!-- 需要返回主键值,这里的id对应的是订单实体类中的属性--><insert id="insert" parameterType="Orders" useGeneratedKeys="true" keyProperty="id">insert into orders(number, status, user_id, address_book_id, order_time, checkout_time, pay_method, pay_status, amount, remark,phone, address, consignee, estimated_delivery_time, delivery_status, pack_amount, tableware_number,tableware_status)values (#{number}, #{status}, #{userId}, #{addressBookId}, #{orderTime}, #{checkoutTime}, #{payMethod},#{payStatus}, #{amount}, #{remark}, #{phone}, #{address}, #{consignee},#{estimatedDeliveryTime}, #{deliveryStatus}, #{packAmount}, #{tablewareNumber}, #{tablewareStatus})</insert> </mapper>
- 注意:
<insert id="" parameterType="Orders" useGeneratedKeys="true" keyProperty="id">
insert
对应的是orderMapper
中的insert
方法parameterType="Orders" useGeneratedKeys="true" keyProperty="id"
是在向数据库中插入对象后,返回id(主键值)的具体实现。这里的id应当是实体对象中的属性id
【注意名字的对应】
- 注意:
参考链接
参考链接
这篇关于【项目实践day08】Mybatis向数据库中插入数据的时候返回主键值id的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!