springboot引入mybatis-plus,执行自动建表语句时报错(无效的绑定语句)的解决办法

springboot引入mybatis和myabtis-plus的时候,执行创建表的语句时报如下错误,xml其实是可以识别到的,其他的查询语句都没有问题,只有在操作数据库的语句上出现了问题,参考网上其他办法是无法解决的;
最后通过删除掉mybatis的依赖,只保留mybatis-plus的依赖后,该问题则解决了,详细原因还不清楚,可以留言告诉我!
在这里插入图片描述

一、mybatis-plus的版本

	<!-- mybatis-plus -->
	<dependency>
	    <groupId>com.baomidou</groupId>
	    <artifactId>mybatis-plus-boot-starter</artifactId>
	    <version>3.4.3.3</version>
	</dependency>

二、yml配置

mybatis-plus:
  # Maven多模块项目的扫描路径需以classpath*: 开头(即加载多个jar包下的XML文件)
  mapper-locations: classpath*:/mapper/*.xml
  configuration:
    # 打印sql到控制台
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 逻辑删除配置
  global-config:
    # 关闭控制台打印mybatis-plus的LOGO
    banner: false
    db-config:
      logic-delete-field: isDelete  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

三、项目结构(xml位置)
在这里插入图片描述
四、tableMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dac.datacenter.dao.TableDao">

    <update id="createTable" parameterType="String">
        CREATE TABLE ${tableEnName} (
            id int(20) NOT NULL AUTO_INCREMENT,
            entityId int(20) NOT NULL,
            dx double NOT NULL,
            dy double NOT NULL,
            dz double NOT NULL,
            ntype varchar(32) NOT NULL,
            gnssTime bigint(20) NOT NULL,
            attributes varchar(255) DEFAULT NULL,
            PRIMARY KEY (id)
        )
    </update>
</mapper>

最后问题是解决了,但是为什么呢,我也不清楚,欢迎留言!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Mybatis-Plus是一个基于Mybatis的增强工具,它简化了Mybatis的使用方式,提供了更加易用的API和更强大的功能。在使用Mybatis-Plus编写SQL语句,我们可以进行一些优化来提高性能和效率。 首先,可以通过使用合适的索引来优化SQL语句。索引可以加快查询速度,减少数据库的查询间。需要注意的是,在创建索引,要根据实际场景和查询需求选择适当的列进行索引,避免过多或冗余的索引。 其次,可以使用合适的分页查询方式进行优化。在查询大量数据,可以通过分页查询的方式减少返回的数据量,提高查询效率。Mybatis-Plus提供了PageHelper插件,可以方便地进行分页查询。 另外,可以通过合理的SQL语句编写和设计来优化查询性能。避免在查询语句中使用通配符进行模糊查询,因为模糊查询会增加数据库的查询负担。如果查询条件中的某个字段有固定的值,可以将其写为精确查询条件,而不是使用模糊查询。 此外,还可以对需要查询的字段进行筛选,只选择需要的字段,避免返回多余的数据,减少网络传输和查询间。 最后,为了避免SQL注入攻击,需要使用参数绑定的方式传递参数,而不是直接拼接参数到SQL语句中。这样可以避免特殊字符对SQL语句的破坏和安全问题。 总之,通过合理使用Mybatis-Plus提供的功能和技巧,我们可以对SQL语句进行优化,提高查询性能和效率。同,还需要根据具体业务场景和需求进行调整和优化,持续改进和优化SQL语句的编写方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值