一.引子
二.序列的概念
三.创建序列
问题:为什么不用触发器?
开发中遇到问题之后,我先在网上查了些资料,发现好多推荐使用触发器;使用触发器确实能够省时省成本,但与同事沟通过之后发现生产环境是不允许使用触发器的,基本原因有二,一个是维护成本高;线上环境数据库问题由DBA处理,研发无法介入;二是对于目前的服务器环境会有效率问题;所以放弃触发器;
四.什么是触发器?
五.触发器的性能
六.mybatis sql语句
由于在之前 已经执行过创建序列的语句,所以可以直接使用序列的函数nextVal了!这个函数简单来说可以得到一个数值,可以是上一个主键加一的结果,或者1;知道这些之后,让我们在mapper文件中加入如下语句
此语句用于引入;
然后创建insert节点
- <insert id="insert" parameterType="x x.x x.x.x.x.x.x.SignUp" >
- insert into SignUp (ID,PRODUCT_CODE,STATUS,U_ID,REAL_NAME,CREATE_TIME
- )
- values (<include refid="TABLE_SEQUENCE" />,#{productCode,jdbcType=VARCHAR},#{status,jdbcType=CHAR},#{uId,#{realName,#{createTime,jdbcType=VARCHAR}
- )
- </insert>
此句中的 这句话是引入刚刚创建的sql片段;意思是将序列生成的数值作为ID插入到数据表中,其他value还是使用变量 至此自动主键的功能已实现;新手需要注意每个insert 的ID的值都要使用序列的nextVal函数 不然会出现可想而知的问题!