首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyBatis学习笔记——记录新增

之前的测试程序都是针对数据的查询。接下来我们测试下数据的新增。我们需要实现的测试功能是:新增一个客户记录。我们看下表结构,我们的客户表中主键ID字段是自动递增的。

首先,在Cust.xml中新增插入的statement内容如下:

这里需要注意的是,id主键字段是自增属性,在sql语句中可以省略不写。

接下来,我们编写测试代码如下:

在测试代码中,我们也可以看到,构件新增的客户对象时,我们并没有初始id属性的值,接下来,我们看下测试结果中,新增记录成果,mybatis对id使用了一个默认值进行参数的初始化。

实际数据库新增记录结果如下,id是mysql自增的值5。

前面可以看到mybatis对未赋值参数的默认值行为,如果对于自增主键,我们新增记录时,需要知道新增记录的主键是什么(需要用来做关联查询或者其它用户)又需要做些什么。

首先,我们的测试代码如下,新增记录后把真实的id打印出来。测试代码如下:

对于mysql在数据记录新增后,我们可以通过LAST_INSERT_ID()函数来获取自增主键的值,因此,我们在Cust.xml中新增用户的statement中做如下配置:

通过测试发现新增记录的主键值在前端能正确打印为6

这里,如果主键不是自增字段,我们以uuid为例,假设主键用uuid(对应的CUST表结构需要修改为varchar(36)),mysql里面通过uuid()函数获取非自增的主键,这样我们的配置如下:

有2点需要注意,首先使用非自增主键需要先产生主键值再新增记录,顺序不要弄错;然后非自增主键插入语句主键字段不能省略。

如果是Oracle数据库,通常使用系列做主键,和上面这个类型,具体配置类似如下:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180127G0P2MN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券