1、先将得到的报错信息,贴出来
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xudod.business_ecology.user.dao.UserBaseMapper.selectAll
2、解决过程
刚开始,搜索了很多资料,但是查找不到可以解决的方法。因为*Mapper.xml文件是自动生成的,然后只加了一个select,但是别的项目都能正常查到数据,只有这个user的项目不行。
最后将*Mapper.xml文件中的select语句拿到Navicat中运行,select语句如下
select * from user.user_base
在Navicat中也报错了。
报错内容如下
[Err] ERROR: syntax error at or near "."
LINE 3: from user.user_base
^
后来查到原因:在postgre数据库中user应该是一个关键字,不能拿来当schema使用,
所以讲数据库schema修改为users,然后将select语句修改为
select * from users.user_bases
最终,在Navicat中运行正确,然后自动生成mybatis的文件中的修改,这里就不赘述了。问题解决。(写文章的时候,以为问题解决了,呵呵)
3、其实上边只是问题之一,修改了代码报错依旧
这个时候头是比较大的,心情也是比较郁闷的。做个深呼吸,用笨办法,将运行没有问题的那个项目的文件和这个出了问题的项目做对比
发现了spring boot项目中唯一的一个配置文件application.yml,是我为了做多环境配置,修改了的文件
而且问题也确实在这里
配置文件内容如下:
这里说明一下,这里是正确的配置文件,修改正确之前的,错误的配置文件没有的代码,用删除线标注起来。
当初修改这里的时候,还以为pagehelper和mybatis的配置是可以共用的所以只在最后配置了一下,没想到每个环境都得配置。
添加了代码后,启动项目,可以正常获取数据了,问题解决。
server:
port: 8091
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:8761/eureka/
spring:
profiles:
active: dev
---
#开发环境
spring:
profiles: dev
application:
name: user
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:postgresql://111.168.1.11:5432/postgres?useUnicode=true&characterEncoding=UTF-8
username:111
password: 111
driver-class-name: org.postgresql.Driver
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
validationQuery: select 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.winter.model
#pagehelper分页插件
pagehelper:
helperDialect: postgresql
reasonable: true
supportMethodsArguments: true
params: count=countSql
---
#测试环境
spring:
profiles: test
application:
name: user
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:postgresql://111.111.1.11:5432/postgres?useUnicode=true&characterEncoding=UTF-8
username: 111
password: 111
driver-class-name: org.postgresql.Driver
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
validationQuery: select 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.winter.model
#pagehelper分页插件
pagehelper:
helperDialect: postgresql
reasonable: true
supportMethodsArguments: true
params: count=countSql
---
#开发环境
spring:
profiles: prod
application:
name: user
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:postgresql://111.117.11.111:5432/postgres?useUnicode=true&characterEncoding=UTF-8
username: 111
password: 111
driver-class-name: org.postgresql.Driver
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
validationQuery: select 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.winter.model
#pagehelper分页插件
pagehelper:
helperDialect: postgresql
reasonable: true
supportMethodsArguments: true
params: count=countSql
网友评论