课时14:事务提交与不同数据库的自增方式

.1)事务的提交

  1.手动提交的方式

SqlSession session=sessionFactory.openSession();//默认值为false  需要手动提交
//使用commit()方法来提交
session.commit();

  2.自动提交的方式

SqlSession session=sessionFactory.openSession(true);

.2)不同数据库的自增方式

  1.mysql支持自增长的方式

    1.1 所以在添加的时候不需要传入id值 数据库会自动处理

<insert id="addStudent" parameterType="Student">
        insert into student(stuName,stuAge,graName,stuSex,homeaddress,schooladdress,cardid,classid)
        values(#{stuName},#{stuAge},#{graName},#{stuSex},#{homeaddress},#{schooladdress},
        #{cardid},#{classid}
        )
    </insert>

    1.2 .如何回写呢?(就是增加后返回增加后的id值) 增加完成以后 调用传入的对象.getId()即可拿到回写值

 

<!--    mysql实现学生头增加-->
    <insert id="addStudent" parameterType="Student" databaseId="mysql" useGeneratedKeys="true" keyProperty="stuno">
        insert into student(stuName,stuAge,graName,stuSex,homeaddress,schooladdress,cardid,classid)
        values(#{stuName},#{stuAge},#{graName},#{stuSex},#{homeaddress},#{schooladdress},
        #{cardid},#{classid}
        )
    </insert>

      1.2.1 useGeneratedKeys:是否开启返回主键id keyProperty:使用什么来接收回写数据

  2.oracle不支持自增长的方式

    2.1 使用序列来模拟自增长

create sequence myseq increment by 1 strat with 2;

      increment:每次增长数 strat:从什么数开始

    2.2 如何调用序列来完成添加数据自增长

      2.2.1 序列自带的两个属性:nextval:序列中下一个值 currval:当前序列值

      2.2.2 编写sql语句 方式一 并且回写id

<!--    oracle实现学生增加-->
    <insert id="addStudent" parameterType="Student" databaseId="oracle" >
        <selectKey keyProperty="stuno" resultType="integer" order="BEFORE">
            select myseq.nextval from dual
        </selectKey>
        insert into student(stono,stuName,stuAge)
            values(#{stuno},#{stuName},#{stuAge})
    </insert>

      2.2.3 编写sql语句 方式二 并且回写id

  <insert id="addStudent" parameterType="Student" databaseId="oracle" >
        <selectKey keyProperty="stuno" resultType="integer" order="AFTER">
            select myseq.currval from dual
        </selectKey>
        insert into student(stono,stuName,stuAge)
            values(myseq.nextval,#{stuName},#{stuAge})
    </insert>

 

posted @ 2020-03-10 20:06  何邦柱  阅读(216)  评论(1编辑  收藏  举报