zoukankan      html  css  js  c++  java
  • 课时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>
  • 相关阅读:
    Eclipse快捷键 10个最有用的快捷键
    Eclipse--Web项目中 .classpath、mymetadata、project文件的功用
    java.lang.IllegalStateException:Web app root system property already set to different value 错误原因及解决 Log4j
    验证位置时发生错误:“org.tigris.subversion.javahl.ClientException......
    隐藏控制台黑窗口
    APK伪加密
    格蠹汇编-01-blog
    static_cast、dynamic_cast、const_cast和reinterpret_cast总结
    CONTAINING_RECORD宏
    explicit关键字
  • 原文地址:https://www.cnblogs.com/thisHBZ/p/12458238.html
Copyright © 2011-2022 走看看