错误梗概
接手了一个新任务,需要修改别人的代码。看看数据库配置 ,连连接池都没,然后引入了 druid,本来一切很顺利。后来不知道怎么回事,运行起来后总是报 “Invalid bound statement (not found) ”,而且报错的都是 MybatisPlus 生成的 BaseMapper 中的方法,自己写的都能正常运行。
参考了很多其他帖子,都无果,最后弄了很久,终于搞定了,特级录之。
druid 和 mybatis-plus 配置参数如下:
pom.xml
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version> <exclusions> <exclusion> <artifactId>jsqlparser</artifactId> <groupId>com<b style="color:transparent">本文来源gao@!dai!ma.com搞$$代^@码!网!</b>.github.jsqlparser</groupId> </exclusion> <exclusion> <artifactId>mybatis-spring</artifactId> <groupId>org.mybatis</groupId> </exclusion> </exclusions> </dependency>
application.properties
######################################################### MybatisPlus 配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.yishi.entity mybatis-plus.global-config.db-config.table-underline=true mybatis-plus.global-config.banner=false mybatis-plus.configuration.map-underscore-to-camel-case=true mybatis-plus.configuration.jdbc-type-for-null=NULL mybatis-plus.configuration.auto-mapping-behavior=FULL ######################################################### druid 配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # 参考 https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter #################################### JDBC 配置 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.url=${mysql.url} spring.datasource.druid.username=${mysql.username} spring.datasource.druid.password=${mysql.password} #################################### 连接池配置 # 初始化大小,最小,最大 spring.datasource.druid.initial-size=10 spring.datasource.druid.max-active=500 spring.datasource.druid.min-idle=5 # 配置获取连接等待超时的时间 spring.datasource.druid.max-wait=60000 # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 #spring.datasource.druid.max-open-prepared-statements= #和上面的等价 #spring.datasource.druid.validation-query= #spring.datasource.druid.validation-query-timeout= spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.test-while-idle=true # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.druid.time-between-eviction-runs-millis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.druid.min-evictable-idle-time-millis=300000 #spring.datasource.druid.max-evictable-idle-time-millis= # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 spring.datasource.druid.filters=stat,wall,log4j spring.datasource.druid.validation-query=SELECT 1 FROM DUAL # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 #################################### 监控配置 # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-stat-filter.exclusions=/druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico spring.datasource.druid.web-stat-filter.session-stat-enable=true spring.datasource.druid.web-stat-filter.session-stat-max-count=10 #spring.datasource.druid.web-stat-filter.principal-session-name= #spring.datasource.druid.web-stat-filter.principal-cookie-name= #spring.datasource.druid.web-stat-filter.profile-enable= # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.reset-enable=true spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin #spring.datasource.druid.stat-view-servlet.allow= #spring.datasource.druid.stat-view-servlet.deny=