如果本文对您有所帮助,可以点一下赞👍
本文只是学习笔记,欢迎指错,转载标明出处
在设计数据库的时候,当设计的表的id是自增长类型的,我们怎么可以在插入一条数据之后,如何获得这个数据的id呢?
看以下代码,代码中,我们往数据库插入了一个ordering的对象(其中属性id的值为null),插入之后,通过getId()方法即可获得该记录id
//插入数据库
orderingService.insert(ordering);
int orderingId = ordering.getId();
需要在OrderingMapper.xml 文件中的insert方法加入相对应的属性,“useGeneratedKeys”的值设为true,“keyProperty”也必须添加,而且keyProperty一定得和java对象的属性名称一直,而不是表格的字段名,这里“keyProperty”的值设为“id”
而且java Dao中的Insert方法,传递的参数必须为java对象,也就是Bean,而不能是某个参数。样例代码如下
<insert id="insert" parameterType="lingnan.pojo.Ordering" useGeneratedKeys="true" keyProperty="id">
insert into ordering (id, user_id, deliverer_id,
store_id, start_time, address,
ordering_state, end_time, price_sum
)
values (#{id,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER}, #{delivererId,jdbcType=INTEGER},
#{storeId,jdbcType=INTEGER}, #{startTime,jdbcType=TIMESTAMP}, #{address,jdbcType=VARCHAR},
#{orderingState,jdbcType=INTEGER}, #{endTime,jdbcType=TIMESTAMP}, #{priceSum,jdbcType=DOUBLE}
)
</insert>