Mybatis的动态创建删除表
Posted 量变决定质变
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis的动态创建删除表相关的知识,希望对你有一定的参考价值。
Mybatis中可以使用JSTL标签
动态删除表
Mapper
void deleteTable(@Param("tableName") String tableName);
Mapper.xml
<update id="deleteTable">
DROP TABLE $tableName
</update>
动态创建表
Mapper
void createTable(@Param("newTableName") String newTableName, @Param("columns") List<Map<String, String>> columns);
Mapper.xml
<update id="createTable">
CREATE TABLE $newTableName (
"ID" VARCHAR2(64 BYTE) PRIMARY KEY NOT NULL,
<foreach item="item" index="index" collection="columns" open="" separator="," close=",">
"$item.code"
<choose>
<when test="item.type=='STRING'">
VARCHAR2($item.length BYTE) NULL
</when>
<when test="item.type=='NUMBER'">
NUMBER($item.length,$column.precision) NULL
</when>
<otherwise>
TIMESTAMP($item.length) NULL
</otherwise>
</choose>
</foreach>
"CREATE_TIME" TIMESTAMP(6) NULL ,
"MODIFY_TIME" TIMESTAMP(6) NULL
)
</update>
或者
Mapper
void createTableColumn(@Param("newTableName") String newTableName, @Param("column") Map<String, String> column);
Mapper.xml
<update id="createTableColumn" parameterType="java.util.Map">
CREATE TABLE $newTableName (
"ID" VARCHAR2(64 BYTE) PRIMARY KEY NOT NULL,
"CREATE_TIME" TIMESTAMP(6) NULL ,
"MODIFY_TIME" TIMESTAMP(6) NULL ,
"$column.code"
<choose>
<when test="column.type=='STRING'">
VARCHAR2($column.length BYTE) NULL
</when>
<when test="column.type=='NUMBER'">
NUMBER($column.length,$column.precision) NULL
</when>
<otherwise>
TIMESTAMP($column.length) NULL
</otherwise>
</choose>
)
</update>
以上是关于Mybatis的动态创建删除表的主要内容,如果未能解决你的问题,请参考以下文章
mybatis里面我要动态查询表的前n行数据:SELECT * FROM aa FETCH FIRST #NUM ROWS ONLY的#NUM 怎么写