美文网首页
Spring Boot + MyBatis 创建Oracle表格

Spring Boot + MyBatis 创建Oracle表格

作者: 一杉风雨 | 来源:发表于2018-10-02 16:53 被阅读0次

    背景

    项目中有对数据库表格动态建立自增主键的需求,而Oracle数据库不能像MySQL一样简单的使用auto_increment primary key。需要分别创建序列触发器,在这里加以记录。

    内容

    <!--假设表已经存在-->
    <!--创建序列-->
    <update id="createSequence" parameterType="String">
            CREATE SEQUENCE ${value}
            INCREMENT BY 1 -- 每次加几个
            START WITH 1 -- 从1开始计数
            NOMAXVALUE -- 不设置最大值
            NOCYCLE -- 一直累加,不循环
            NOCACHE -- 不建缓冲区
    </update>
    
    <!--创建触发器, statementType为必须-->
    <update id="createTrigger" parameterType="com.guanshan.model.clientlist.TriggerInfo" statementType="STATEMENT">
            CREATE TRIGGER ${triggerName} BEFORE
            INSERT ON ${tableName} FOR EACH ROW WHEN (NEW.ID IS NULL)
            BEGIN 
                SELECT ${sequenceName}.nextval INTO : NEW.ID FROM dual;
            END ;
    </update>
    

    备注

    statementType属性有三种值(默认的值是preparedstatement):
    statement
    preparedstatement
    callablestatement
    
    Statement: 每次执行sql语句,数据库都要执行sql语句的编译
    PreparedStatement: 预编译sql语句
    callablestatement: 调用存储过程
    

    相关文章

      网友评论

          本文标题:Spring Boot + MyBatis 创建Oracle表格

          本文链接:https://www.haomeiwen.com/subject/zmkaoftx.html