開源地址:
- github:
- gitee: https://gitee.com/sagacity/sagacity-sqltoy
- idea 外掛(可直接在idea中檢索安裝):
更新內容
1、findByQuery(QueryExecutor query) 結果QueryResult增加List getFirstColumn(boolean distinct) 方法,便於提取結果集單列值形成一維陣列
2、sql檔案filters中增加clone方法
<sql id="qstart_clone_param_case">
<filters>
<!-- 適用於前端只有單日期條件時,構造一個endDate形成日期範圍過濾 -->
<clone param="beginDate" as-param="endDate"/>
<to-date params="endDate" increment-unit="days" format="yyyy-MM-dd" increment-time="1"/>
</filters>
<value>
<![CDATA[
select * from sqltoy_trans_info_15d t
where t.trans_date>=:beginDate
#[and t.trans_date<:endDate]
]]>
</value>
</sql>
sqltoy的關鍵優勢:
//------------------瞭解 sqltoy的關鍵優勢: -------------------------------------------------------------------------------------------*/
//1、最簡最直觀的sql編寫方式(不僅僅是查詢語句),採用條件引數前置處理規整法,讓sql語句部分跟使用者端保持高度一致
//2、sql中支援註釋(規避了對hint特性的影響,知道hint嗎?搜oracle hint),和動態更新載入,便於開發和後期維護整個過程的管理
//3、支援快取翻譯和反向快取條件檢索(通過快取將名稱匹配成精確的key),實現sql簡化和效能大幅提升
//4、支援快速分頁和分頁優化功能,實現分頁最高階別的優化,同時還考慮到了cte多個with as情況下的優化支援
//5、支援並行查詢
//6、根本杜絕sql注入問題
//7、支援行列轉換、分組彙總求平均、同比環比計算,在於用演演算法解決複雜sql,同時也解決了sql跨資料庫問題
//8、支援保留字自動適配
//9、支援跨資料庫函數自適配,從而非常有利於一套程式碼適應多種資料庫便於產品化,比如oracle的nvl,當sql在mysql環境執行時自動替換為ifnull
//10、支援分庫分表
//11、提供了取top、取random記錄、樹形表結構構造和遞迴查詢支援、updateFetch單次互動完成修改和查詢等實用的功能
//12、sqltoy的update、save、saveAll、load 等crud操作規避了jpa的缺陷,參見update(entity,String...forceUpdateProps)和updateFetch
//13、提供了極為人性化的條件處理:排它性條件、日期條件加減和提取月末月初處理等
//14、提供了查詢結果日期、數位格式化、安全脫敏處理,讓複雜的事情變得簡單,大幅簡化sql或結果的二次處理工作
//-----------------------------------------------------------------------------------*/
sqltoy特點介紹:
- sqltoy的核心構建思想
- sqltoy的對比mybatis(plus)和fluent mybatis的核心點:查詢語句編寫、可閱讀性、可維護性
- 物件化crud是基礎,但sqltoy有針對性的改進:update、updateSaveFetch、updateFetch等
- sqltoy的快取翻譯,大幅減少表關聯簡化sql,讓你的查詢效能成幾何級提升
- 極致的分頁,同樣幫助你實現查詢的效能大幅提升
- 快速分頁:@fast() 實現先取單頁資料然後再關聯查詢,極大提升速度
- 分頁優化器:page-optimize 讓分頁查詢由兩次變成1.3~1.5次(用快取實現相同查詢條件的總記錄數量在一定週期內無需重複查詢
- sqltoy的分頁取總記錄的過程不是簡單的select count(1) from (原始sql);而是智慧判斷是否變成:select count(1) from 'from後語句', 並自動剔除最外層的order by
- sqltoy支援並行查詢:parallel="true",同時查詢總記錄數和單頁資料,大幅提升效能
- 便利的跨資料庫統計計算:資料旋轉
- 便利的跨資料庫統計計算:無限極分組統計(含彙總求平均)
- 便利的跨資料庫統計計算:同比環比