1.如果要插入数据的表的主键字段有自增的规则
示例:
INSERT into (studentName,phone,birth) VALUE (#{studentName},#{phone},#{birth});
用法:
在<insert>标签中添加keyProperty=“主键字段”,useGeneratedKeys=”true”字段解析:
keyProperty:表示指定的属性作为主键useGeneratedKeys:如果为true,会使mybatis使用Jdbc的getGeneratedKeys()的方法来获取数据库内部生成得到主键。例如,mysql和sql server自动递增的字段,oracle的序列等,但是使用它的前提是必须要给出KeyProperty属性
2.自定义主键规则,并回填
假如我们要插入数据的表没有设置主键自增的规则,但是我们也要实现上面通样的效果,这时我们可以自己定义自增的规则。
示例:如果表里没有记录,主键初始值为1,如果存在记录,每次+2递增
select if(max(id) is null,1,max(id)+2) from student; INSERT into(id,studentName,phone,birth) VALUE (#{id},#{studentName},#{phone},#{birth});
讲解:这里用到了selectKey子标签