Mybatis 支持 DDL 吗?
Posted
技术标签:
【中文标题】Mybatis 支持 DDL 吗?【英文标题】:Does Mybatis support DDL? 【发布时间】:2013-09-13 12:39:58 【问题描述】:我的项目是一个数据库中心,类似于 PLSQL,但用于 Web 浏览器。有时候我需要创建或者修改一个表,但是我不知道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 语句。
【讨论】:
以上是关于Mybatis 支持 DDL 吗?的主要内容,如果未能解决你的问题,请参考以下文章
mybatis 支持属性使用驼峰的命名 返回map为啥不支持