Mybatis支持DDL吗?

时间:2013-09-13 12:39:58

标签: mybatis ddl

我的项目是一个数据库中心,就像PLSQL一样,但在Web浏览器中使用。有时我需要创建或更改表,但我不知道Mybatis是否支持DDL,我还没有找到任何关于此的文档。

2 个答案:

答案 0 :(得分:5)

在大多数情况下,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>

答案 1 :(得分:1)

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