数据库的表名与mybatis-plus设置的tablename不一致导致报错

修改方法:这种报错提示一般是sql语句出现问题,仔细观察sql语句或者是不是表名不对应

org.springframework.jdbc.BadSqlGrammarException:
### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table 'mianshi_data.data' doesn't exist
### The error may exist in com/yelin/mapper/DataMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT  id,create_time,update_time,is_deleted,parent_id,name,value,dict_code  FROM data   WHERE  is_deleted=0  AND (parent_id = ?)
### Cause: java.sql.SQLSyntaxErrorException: Table 'mianshi_data.data' doesn't exist
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'mianshi_data.data' doesn't exist
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:235)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
    at com.sun.proxy.$Proxy84.selectList(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus是Mybatis的增强工具,在开发中有很多使用场景,其中就包括动态表名插件,也就是说,在Mybatis-Plus中,动态表名插件可以实现一个SQL语句的多关联查询。 动态表名插件是Mybatis-Plus的一种增强插件,在查询过程中,通过钩子的方式,动态生成SQL语句,以实现动态表名的查询。这种方法不仅可以实现多关联查询,而且还能避免SQL注入攻击。 使用动态表名插件,需要在Mybatis-Plus的配置文件中添加相应的配置,具体操作步骤如下: 1.在pom.xml文件中引入Mybaits-Plus和相关的依赖。 ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.2</version> </dependency> ``` 2.在application.yml文件中添加Mybatis-Plus相关的配置信息。 ```yml mybatis-plus: mapper-locations: classpath*:/mapper/**/*.xml type-aliases-package: com.example.model configuration: map-underscore-to-camel-case: true sql-injector: com.baomidou.mybatisplus.extension.injector.LogicSqlInjector global-config: db-config: logic-delete-value: 1 logic-not-delete-value: 0 ``` 3.编写Mapper.xml文件,使用动态表名插件。 ```xml <select id="findUserByName" resultMap="user"> SELECT * FROM ${tableName} WHERE name = #{name} </select> ``` 以上就是使用动态表名插件实现多关联查询的方法,需要注意的是,在使用动态表名插件时,需要特别小心SQL注入攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值