Mybatis建表

  • Post author:
  • Post category:其他


如果建表语句的静态的那完全不用Mybatis,在数据库就可以建。最近工作中遇到问题需要在Mybatis动态建表,尝试来解决这个问题。

首先我们拿到建表语句

String sqlText = “…”



正确方案

应该将表名跟建表语句分开,使之大致拼成一个CREATE TABLE 的SQL,如:

    <update id="createNewTable">
        CREATE TABLE ${tableName} AS ${sqlText}
    </update>



错误方案

    <update id="createNewTable">
         ${sqlText}
    </update>

这是我最先一拍脑袋想到的,但是这句话被解析的时候会解析成了一个占位符“”,本身很好理解,Mybatis找不到具体的SQL语句报错。




小提示:

1.建表语句的参数应该使用不带引号的 ‘$ {…}’

2.应为选择了$,所以有可能会受到SQL注入的攻击,需要具体逻辑具体校验



版权声明:本文为bsegebr原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。