mybaits五:主键的自增
生活随笔
收集整理的這篇文章主要介紹了
mybaits五:主键的自增
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
mysql支持主鍵的自增
? ? ? ? ? useGeneratedKeys=="true"使用自增主鍵獲取主鍵值策略
? ? ? ? ??keyProperty:指定對應的主鍵值,也就是mybatis獲取到主鍵值后,將這個值封裝給java bean的某個屬性。
<!-- parameterType可以省略不寫 --><insert id="addEmploy" parameterType="com.atChina.bean.Employee"useGeneratedKeys="true" keyProperty="id">insert into DEPTTEST(deptno, dname, loc) values(#{deptno}, #{dname}, #{loc})</insert>Oracle不支持主鍵的自增,但使用序列來模擬自增
? oracle每次插入數(shù)據(jù)的主鍵是從序列中拿到的值
? oracle有這樣的一個序列
?BEFORE運行順序:?
<!-- parameterType可以省略不寫 --><insert id="addEmploy" parameterType="com.atChina.bean.Employee"><!-- keyProperty: 查出的主鍵值封裝給java bean的某個屬性order="BEFORE": 當前sql在插入sql之前運行AFTER: 當前sql在插入sql之后運行resultType: 查出的數(shù)據(jù)的返回值類型BEFORE運行順序: 先運行selectKey查詢id的sql,查出id值封裝給javaBean的id屬性再運行插入的sql,就可以取出id屬性對應的值 --><selectKey keyProperty="id" resultType="Integer" order="BEFORE">select SEQU_DEPTTEST.nextval from dual</selectKey>insert into DEPTTEST(id, deptno, dname, loc) values(#{id}, #{deptno}, #{dname}, #{loc})</insert>AFTER運行順序:?
<insert id="addEmploy" parameterType="com.atChina.bean.Employee"><!-- keyProperty: 查出的主鍵值封裝給java bean的某個屬性order="BEFORE": 當前sql在插入sql之前運行AFTER: 當前sql在插入sql之后運行resultType: 查出的數(shù)據(jù)的返回值類型AFTER運行順序:先運行插入的sql, 從序列中取出新值作為id再運行selectKey查詢id的sql--><selectKey keyProperty="id" resultType="Integer" order="AFTER">select SEQU_DEPTTEST.currval from dual</selectKey>insert into DEPTTEST(id, deptno, dname, loc) values(SEQU_DEPTTEST.nextval, #{deptno}, #{dname}, #{loc})</insert>?
總結(jié)
以上是生活随笔為你收集整理的mybaits五:主键的自增的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybaits四-1:增删改查的实现
- 下一篇: mybaits六:参数处理