内容简介:该插件目前支持以下数据库的在本次更新仅仅是把默认值从
该插件目前支持以下数据库的 物理分页 :
-
Oracle -
Mysql -
MariaDB -
SQLite -
Hsqldb -
PostgreSQL -
DB2 -
SqlServer(2005,2008) -
Informix -
H2 -
SqlServer2012 -
Derby -
Phoenix -
达梦数据库
-
阿里云PPAS
5.1.10
在 5.1.0 - 2017-08-28
版本中,增加 ReplaceSql
接口用于处理 sqlServer 的 with(nolock)
问题,增加了针对性的 replaceSql
参数, 可选值为 simple
和 regex
,或者是实现了ReplaceSql接口的全限定类名。默认值为 simple
,仍然使用原来的方式处理, 新的 regex
会将如 table with(nolock)
处理为 table_PAGEWITHNOLOCK
。
本次更新仅仅是把默认值从 simple
改为了 regex
,使用 regex
方式几乎能 100% 解决 sqlServer 的分页问题。
Starter 升级到了 1.2.12
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
下面是两个 issue 中的示例。
示例 SQL #76
原始 SQL:
SELECT * FROM forum_post_info a with(nolock) LEFT JOIN forum_carcase_tags as b with(nolock) on a.id = b.carcase_id where b.tag_id = 127
转换的 Count SQL:
SELECT COUNT(0) FROM forum_post_info a WITH (NOLOCK) LEFT JOIN forum_carcase_tags b WITH (NOLOCK) ON a.id = b.carcase_id WHERE b.tag_id = 127
转换的分页 SQL:
SELECT TOP 10 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY RAND()) AS PAGE_ROW_NUMBER, * FROM ( SELECT * FROM forum_post_info a WITH (NOLOCK) LEFT JOIN forum_carcase_tags b WITH (NOLOCK) ON a.id = b.carcase_id WHERE b.tag_id = 127 ) PAGE_TABLE_ALIAS ) PAGE_TABLE_ALIAS WHERE PAGE_ROW_NUMBER > 1 ORDER BY PAGE_ROW_NUMBER
示例 SQL #398
原始 SQL:
Select AUS.ScheduleID, AUS.SystemID, AUS.ClinicID, AUS.DoctorID, AUS.ScheduleDate, AUS.StartTime, AUS.EndTime, AUS.Status, AUS.BookBy, AUS.Note, AUS.Remark, AUS.SourceType, CM.CompanyName, AU.UserName As DoctorName, AU.UserNumber As DoctorNumber, CC.CodeDesc As ClinicName, CD.Lat, CD.Lng, CD.ContactTel, CD.Address, CR.ConsultationStatusID, CR.RegisterStatus,A1.CodeDesc as AreaLevel1, A2.CodeDesc as AreaLevel2 From ACM_User_Schedule AUS with(nolock) Left Join Client_Register CR with(nolock) On AUS.BookBy=CR.ClientID And CR.SourceType='F' And AUS.ClientRegisterNum=CR.ClientRegisterNum Inner Join ACM_User AU with(nolock) On AU.UserID = AUS.DoctorID Inner Join Code_Clinic CC with(nolock) On AUS.ClinicID=CC.CodeID Inner Join Clinic_Detail CD with(nolock) On CC.CodeID = CD.ClinicID Inner Join Code_Area A1 with(nolock) On CD.AreaLevel1ID=A1.CodeID Inner Join Code_Area A2 with(nolock) On CD.AreaLevel2ID=A2.CodeID Inner Join Company_Master CM with(nolock) On CC.SystemID = CM.SystemID Where BookBy=1
转换的 Count SQL:
SELECT COUNT(0) FROM ACM_User_Schedule AUS WITH (NOLOCK) LEFT JOIN Client_Register CR WITH (NOLOCK) ON AUS.BookBy = CR.ClientID AND CR.SourceType = 'F' AND AUS.ClientRegisterNum = CR.ClientRegisterNum INNER JOIN ACM_User AU WITH (NOLOCK) ON AU.UserID = AUS.DoctorID INNER JOIN Code_Clinic CC WITH (NOLOCK) ON AUS.ClinicID = CC.CodeID INNER JOIN Clinic_Detail CD WITH (NOLOCK) ON CC.CodeID = CD.ClinicID INNER JOIN Code_Area A1 WITH (NOLOCK) ON CD.AreaLevel1ID = A1.CodeID INNER JOIN Code_Area A2 WITH (NOLOCK) ON CD.AreaLevel2ID = A2.CodeID INNER JOIN Company_Master CM WITH (NOLOCK) ON CC.SystemID = CM.SystemID WHERE BookBy = 1
转换的分页 SQL:
SELECT TOP 10 ScheduleID, SystemID, ClinicID, DoctorID, ScheduleDate , StartTime, EndTime, Status, BookBy, Note , Remark, SourceType, CompanyName, DoctorName, DoctorNumber , ClinicName, Lat, Lng, ContactTel, Address , ConsultationStatusID, RegisterStatus, AreaLevel1, AreaLevel2 FROM ( SELECT ROW_NUMBER() OVER (ORDER BY RAND()) AS PAGE_ROW_NUMBER, ScheduleID, SystemID, ClinicID, DoctorID , ScheduleDate, StartTime, EndTime, Status, BookBy , Note, Remark, SourceType, CompanyName, DoctorName , DoctorNumber, ClinicName, Lat, Lng, ContactTel , Address, ConsultationStatusID, RegisterStatus, AreaLevel1, AreaLevel2 FROM ( SELECT AUS.ScheduleID, AUS.SystemID, AUS.ClinicID, AUS.DoctorID, AUS.ScheduleDate , AUS.StartTime, AUS.EndTime, AUS.Status, AUS.BookBy, AUS.Note , AUS.Remark, AUS.SourceType, CM.CompanyName, AU.UserName AS DoctorName, AU.UserNumber AS DoctorNumber , CC.CodeDesc AS ClinicName, CD.Lat, CD.Lng, CD.ContactTel, CD.Address , CR.ConsultationStatusID, CR.RegisterStatus, A1.CodeDesc AS AreaLevel1, A2.CodeDesc AS AreaLevel2 FROM ACM_User_Schedule AUS WITH (NOLOCK) LEFT JOIN Client_Register CR WITH (NOLOCK) ON AUS.BookBy = CR.ClientID AND CR.SourceType = 'F' AND AUS.ClientRegisterNum = CR.ClientRegisterNum INNER JOIN ACM_User AU WITH (NOLOCK) ON AU.UserID = AUS.DoctorID INNER JOIN Code_Clinic CC WITH (NOLOCK) ON AUS.ClinicID = CC.CodeID INNER JOIN Clinic_Detail CD WITH (NOLOCK) ON CC.CodeID = CD.ClinicID INNER JOIN Code_Area A1 WITH (NOLOCK) ON CD.AreaLevel1ID = A1.CodeID INNER JOIN Code_Area A2 WITH (NOLOCK) ON CD.AreaLevel2ID = A2.CodeID INNER JOIN Company_Master CM WITH (NOLOCK) ON CC.SystemID = CM.SystemID WHERE BookBy = 1 ) PAGE_TABLE_ALIAS ) PAGE_TABLE_ALIAS WHERE PAGE_ROW_NUMBER > 1 ORDER BY PAGE_ROW_NUMBER
SQL 经过 https://tool.oschina.net/codeformat/sql 格式化。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Gradle插件开发系列之发布gradle插件到开源库
- mybatis 插件 flying-极光 发布
- Vue插件从封装到发布
- mybatis 插件 flying-清明 发布
- ShopXO 开源商城分销插件发布
- BeetlSQL 3.0.9 发布,Idea 插件发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度解析淘宝运营
刘涛 / 电子工业出版社 / 2015-9-1 / 49.00元
淘宝运营,仅有知识是不够的,还需要有系统的运营思路。为帮助广大电商从业者以及众多中小卖家更好地运营店铺,《深度解析淘宝运营》全面阐述了整个店铺运营的重点环节,包括淘宝搜索规则、打造爆款、店铺规划、客户服务、直通车、钻石展位、数据分析等内容。具体操作步骤翔实,并且结合笔者的实际操作经验,将各个环节最本质的一面透彻展现给读者,结合理论与实战,尽可能向读者展示一个最真实的运营核心。《深度解析淘宝运营》没......一起来看看 《深度解析淘宝运营》 这本书的介绍吧!