Spring-Boot整合通用PageHelper外掛遇到的問題
一、POM依賴(沒問題的)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.12.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<!--PageHelper分頁外掛-->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.3</version>
</dependency>
配置檔案
# 主資料來源,預設的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#注意SpringBoot2.0+ 這裡的資料來源url是: jdbc-url 而不是 url
spring.datasource.url=jdbc\:mysql\://localhost\:3306/slave?useUnicode\=true&autoReconnect=true&useSSL=false&characterEncoding\=utf-8&useSSL=true&allowMultiQueries=true
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
#===========pagehelper外掛的配置使用的是預設的引數,因此下面不需要配置,知道就行
#pagehelper.helperDialect=mysql
#pagehelper.reasonable=true
#pagehelper.supportMethodsArguments=true
#pagehelper.params=count=countSql
如上配置,沒有問題!!!!!
二、POM依賴,升級PageHelper版本至1.2.+(有問題)
同步GitHub上的版本,更新到最近的1.2.7版本如下
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.12.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<!--PageHelper分頁外掛-->
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.7</version>
</dependency>
配置檔案properties需要改動一下,將原來的
pagehelper.helperDialect=mysql
改成
pagehelper.dialect=com.github.pagehelper.dialect.helper.MySqlDialect
因為Mybaits的版本在5.1.+後,這個地方有所變動
如果,你不改的話,仍然使用5.1.0之前的版本那種配置的話,專案啟動是正常,但是查詢的時候會異常
後臺Console報錯如下
### SQL: select id,name,sex from user WHERE id in (1,2) LIMIT ?
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 8
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 8
提示查詢語句語法有問題?
解決辦法(其實也不是解決辦法,就是這樣做的),如上述說的,改PageHelper外掛的配置
pagehelper.dialect=com.github.pagehelper.dialect.helper.MySqlDialect
改過來之後,重啟專案,然後再次查詢
這個問題因個人能力有限,無法跟蹤問題,坐等作者解答吧
所以,最好的結合就是
spring-boot-starter-parent :1.5.12.RELEASE (2.0以下的均可)
pagehelper-spring-boot-starter :1.1.3 (同樣,1.2.0以下)
注意,PageHelper 1.1.0 +和 PageHelper 1.2.0+的區別
1.2.0之前的:pagehelper.helperDialect=mysql
1.2.0之後的:pagehelper.dialect=com.github.pagehelper.dialect.helper.MySqlDialect
三、Spring Boot 1.0和2.0版本對比
(1)資料來源不同
Spring Boot 1.0+ : spring.datasource.url = 資料來源
Spring Boot 2.0+ : spring.datasource.jdbc-url = 資料來源
(2) SpringBootServletInitializer類所在的包
Spring Boot 1.0+ :
import org.springframework.boot.web.support.SpringBootServletInitializer;
Spring Boot 2.0+ :
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
(3)DataSourceBuilder類所在的包
Spring Boot 1.0+ :
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
Spring Boot 2.0+ :
import org.springframework.boot.jdbc.DataSourceBuilder;
四、最後
(1)不要以為版本高就是好的,就是亮點,就能吸引我們冒險去升級我們專案中的依賴版本
(2)Spring-Boot 2.0+ 不支援 pagehelper-spring-boot-starter 1.1.0+版本,應該說 pagehelper-spring-boot-starter 1.1.0+和Spring-Boot 2.0+不相容才對,但是1.2.0+又存在我上述講過的問題
(3)Spring-Boot 2.0+的特性不適合我,目前專案中也用不到,所以建議不要急著升級Spring Boot的版本
(4)結論
相關文章
- springboot整合分頁外掛pageHelper 返回全部資料問題Spring Boot
- 使用CodeMirror外掛遇到的問題
- IntelliJ IDEA 外掛Rest Client 外掛使用過程遇到的問題IntelliJIdeaRESTclient
- springboot_mybatis_pageHelper所遇到的問題點Spring BootMyBatis
- pageHelper分頁外掛導致的查詢慢的問題最佳化
- SpringBoot中分頁外掛PageHelper的使用Spring Boot
- 初次使用EasyUI框架外掛遇到的問題及總結UI框架
- Spring boot入門(二):Spring boot整合MySql,Mybatis和PageHelper外掛Spring BootMySqlMyBatis
- SpringBoot中使用Mybatis-plus整合PageHelper分頁外掛踩坑Spring BootMyBatis
- PageHelper 分頁外掛使用中的那些“坑”
- Chrome安裝sci-hub外掛遇到的問題解決方法Chrome
- Laravel通用外掛Laravel
- macbook 下安裝Goglang 以及安裝svn外掛所遇到的問題MacGo
- MyBatis外掛 - 通用mapperMyBatisAPP
- Springboot整合pagehelperSpring Boot
- SpringBoot 2.X 整合 RocketMQ遇到的問題2Spring BootMQ
- pgsql的向量外掛啟用問題SQL
- apache2.4與php5.4整合遇到的問題ApachePHP
- composer通用外掛平臺包
- Mybatis第三方PageHelper分頁外掛原理MyBatis
- [外掛擴充套件] 已安裝外掛板塊問題套件
- [外掛擴充套件]通用社交化評論SocialComment外掛0.2套件
- Springboot 整合通用mapper和pagehelper展示分頁資料(附github原始碼)Spring BootAPPGithub原始碼
- Spring-Boot整合RedisSpringbootRedis
- ThinkSDK SNS通用開發者外掛
- chrome 外掛開發中的熱更新問題Chrome
- Atom外掛aligner冒號(:)對齊的問題
- Go 原生外掛使用問題全解析Go
- linux遇到的問題Linux
- Vagrant 遇到的問題
- Homestead 遇到的問題
- sudo 遇到的問題
- JackJson遇到的問題JSON
- mysql 遇到的問題MySql
- WangEditor遇到的問題
- 如何從零編寫一個vite外掛 建立 vite 外掛通用模板Vite
- [提問交流]onethink UploadImages外掛不顯示問題
- YII框架 外掛引入問題,手動引入 redis外掛, class "yii\redis\Cache".框架Redis