Mybatis selectkey 的作用
来源:互联网 发布:c语言数组定义和输出 编辑:程序博客网 时间:2024/06/05 17:33
SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。
使用mybatis的selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。
SelectKey需要注意order属性,像MySQL一类支持自动增长类型的数据库中,order需要设置为after才会取到正确的值。
像Oracle这样取序列的情况,需要设置为before,否则会报错。
下面是一个xml和注解的例子,SelectKey很简单,两个例子就够了:
上面xml的传入参数是map,selectKey会将结果放到入参数map中。用POJO的情况一样,但是有一点需要注意的是,keyProperty对应的字段在POJO中必须有相应的setter方法,setter的参数类型还要一致,否则会报错。
对于oracle:
<insert id="insertUser" parameterClass="XXX.User">
<selectKey resultClass="long" keyProperty="id"order="BEFORE">
select SEQ_USER_ID.nextval as id from dual
</selectKey>
insert into user (id,name,password)
values (#{id},#{name},#{password})
</insert>
这句话会在插入user之前执行(order="BEFORE"),该句话执行完之后,会生成一个ID,传进来的参数User对象里的id字段就会被赋值成sequence的值。
对于mysql
<insert id="insertUser" parameterClass="XXX.User">
insert into user (name,password)
values (#{id},#{name},#{password})
<selectKey resultClass="long" keyProperty="id" order="after">
SELECT LAST_INSERT_ID() AS ID
</selectKey>
</insert>
将selectKey放在insert之后,通过LAST_INSERT_ID() 获得刚插入的自动增长的id的值。插入之后获得ID赋值到传进来的对象中(对象中必须有相应的属性)。
- mybatis的selectKey作用
- Mybatis selectkey 的作用
- mybatis的selectKey功用
- mybatis的selectKey功用
- Mybatis - SelectKey
- mybatis的selectKey和sql标签
- nio中selectkey,selector的作用
- Mybatis 示例之 SelectKey
- MyBatis <selectKey>标签
- Mybatis 示例之 SelectKey
- Mybatis 示例之 SelectKey
- Mybatis 示例之 SelectKey
- mybatis中的selectKey
- Mybatis 示例之 SelectKey
- mybatis selectkey获取主键
- Mybatis 示例之 SelectKey
- Mybatis 示例之 SelectKey
- MyBatis中的selectKey
- SAP-MM-移动类型解析之收货01-收货冻结
- iOS 自动化单元测试--XCTest
- block和delegate的区别使用
- 使用ArrayList集合,对其添加100个不同的元素: 1.使用add()方法将元素添加到ArrayList集合对象中; 2.调用集合的iterator()方法获得Iterator对象,并调用Ite
- Node对MongoDB实现增删改查,分页功能
- Mybatis selectkey 的作用
- 关于gulp的小知识点
- 流瞬ElectroMagneticWorks(EMWorks).EMS.2017.SP1.4.for.SW2011-2018.Win64三维电磁场仿真软件 EMS帮助设计人员计算的电、磁、机械和
- spring maven
- PAT考试乙级1045(C语言实现)重点题目(思路)
- Android中的AsyncTask(异步任务)和接口回调使用详解
- Java面试题全集上
- MariaDB忘记root密码
- 动态爬虫[闲谈1]