【问题标题】:Does Mybatis support DDL?Mybatis 支持 DDL 吗?
【发布时间】:2013-09-13 12:39:58
【问题描述】:

我的项目是一个数据库中心,类似于 PLSQL,但用于 Web 浏览器。有时候我需要创建或者修改一个表,但是我不知道Mybatis是否支持DDL,我也没有找到任何关于这个的文档。

【问题讨论】:

    标签: mybatis ddl


    【解决方案1】:

    在大多数情况下,DDL 的工作方式与使用 mybatis 的 DML 一样。一个区别是您需要使用 ${} 而不是 #{} 作为参数。大多数数据库不支持使用 DDL 的预处理语句。 $ 表示法是字符串替换,而不是预准备语句的参数。

    <update id="exchangePartition" parameterType="java.util.Map">
        alter table ${destinationTableName} 
        exchange partition ${destinationPartitionName} 
        with table ${sourceTableName} 
        including indexes 
        with validation
    </update>
    

    了解具有可调用存储过程的语句类型的调用语法也很有帮助。

    <update id="gatherStatistics" statementType="CALLABLE" parameterType="Map">
        {call 
            dbms_stats.gather_table_stats(
                ownname => #{tableOwner}, 
                tabname => #{tableName}
                <if test="partitionName != null">
                    , partname => #{partitionName}
                </if> 
               )
        }
    </update>
    

    【讨论】:

      【解决方案2】:

      MyBatis 支持任何原生 SQL/PlSql 命令。 所以是的,它支持 DDL 语句。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-13
        • 2015-07-18
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        相关资源
        最近更新 更多