parametertype
:入参的全限定类名或类型别名keycolumn
:设置数据表自动生成的主键名。对特定数据库(如postgresql),若自动生成的主键不是第一个字段则必须设置keyproperty
:默认值unt,用于设置getgeneratedkeys方法或lectkey子元素返回值将赋值到领域模型的哪个属性中ugeneratedkeys
:取值范围true|fal(默认值),设置是否使用jdbc的getgenereatedkeys方法获取主键并赋值到keyproperty设置的领域模型属性中。mysql和sqlrver执行auto-generated key field,因此当数据库设置好自增长主键后,可通过jdbc的getgeneratedkeys方法获取。但像oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了statementtype
:取值范围statement,prepared(默认值),callableflushcache
:取值范围true(默认值)|fal,设置执行该操作后是否会清空二级缓存和本地缓存timeout
:默认为unt(依赖jdbc驱动器的设置),设置执行该操作的最大时限,超时将抛异常databaid
:取值范围oracle|mysql等,表示数据库厂家,元素内部可通过`<if test=”_databaid = ‘oracle'”>`来为特定数据库指定不同的sql语句两种方式均满足需求。
注意:mapper接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到领域模型实体的id中了。
<inrt id="add" par韩国男士护肤品品牌ametertype="com.test.model.cour"> <foreach collection="list" item="item" index="index" parator=";"> inrt into tb_cour (cour_name, teacher_name, cour_week, cour_time, place, gmt_create, gmt_modify)values (#{courname,jdbctype=varchar}, #{teachername,jdbctype=varchar}, #{courweek,jdbctype=varchar}, #{courtime,jdbctype=varchar}, #{place,jdbctype=varchar}, #{gmtcreate,jdbctype=timestamp}, #{gmtmodify,jdbctype=timestamp}) </foreach&g物料守恒怎么理解t;</inrt>
两种方式:
1、添加属性 ugeneratedkeys=”true” keyproperty=”id”
2、添加代码
<lectkey resulttype="java.lang.short" order="after" keyproperty="id">lect last_inrt_id() as id</lectkey>
推荐使用第一种!
role.java实体类
public class role implements rializable { private string roleid; private string name; 瘦身的最快方法private integer status; public string getroleid() { return roleid; } public void troleid(string roleid) { this.roleid = roleid; } public string getname() { return name; } public void tname(string name) { this.name = name; } public integer getstatus() { return status; } public void tstatus(integer status) { this.statu于玮个人资料图片s = status; }}
sysroledao.java
public interface sysroledao { public int addrole(sysrole role);}
mapper-role.xml
<inrt id="addrole" parametertype="sysrole" ugeneratedkeys="true" keyproperty="roleid" keycolumn="role_id"> inrt into t_sys_role( name,status ) values( #{name,jdbctype=varchar}, #{status,jdbctype=varchar}, )</inrt>
注:
1、添加记录能够返回主键的关键点在于需要在<inrt>标签中添加以下三个属性<inrt ugen生活超市eratedkeys=”true” keyproperty=”id” keycolumn=”id”></inrt>。
ugeneratedkeys
:必须设置为true,否则无法获取到主键id。keyproperty
:设置为pojo对象的主键id属性名称。keycolumn
:设置为数据库记录的主键id字段名称2、新添加主键id并不是在执行添加操作时直接返回的,而是在执行添加操作之后将新添加记录的主键id字段设置为pojo对象的主键id属性
testdao.java
@runwith(springjunit4classrunner.class)@contextconfiguration(locations= {"classpath:config/spring-core.xml","classpath:config/spring-web.xml"})public class testdao{ @autowired sysroledao roledao; @test public void test() { sysrole role=new sysrole(); role.tname("admin10"); role.tstatus(1); system.out.println("返回结果:"+roledao.addrole(role)); system.out.println("主键id:"+role.getroleid()); }}
打印结果
返回结果:1
主键id:12
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 00:21:33,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/9f9ee0f0fc59ed23f6eb8f505e12af44.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:MyBatis insert实体如何返回主键.doc
本文 PDF 下载地址:MyBatis insert实体如何返回主键.pdf
留言与评论(共有 0 条评论) |