• <dd id="3gzlp"></dd>

    <li id="3gzlp"><acronym id="3gzlp"></acronym></li>

    <span id="3gzlp"></span>

    極致性能 sqltoy-orm-4.12.9 發版

    zhongxuchen
     zhongxuchen
    發布于 2020年06月12日
    收藏 10

    openEuler項目召集令就在暑期2020,最高6萬元獎金等你來領!>>>

    開源地址:

    更新內容

    1、初步支持tidb,建議可以初步試用
    2、針對elastic升級fastjson到1.2.70版本,修復安全漏洞,同時升級spring依賴版本
    3、優化少量代碼
    4、初步增加guassdb、oceanbase的方言支持,希望有相關使用者協助測試!
    5、quickvo 將字段對應數據庫原始類型作為vo屬性備注輸出,便于調整類型匹配

    sqltoy特點說明:

    • 支持mysql、postgresql、db2、oracle、sqlserver、sqlite、clickhouse、elasticsearch、mongodb等
    • 具有JPA模式的CRUD功能(即CRUD無需寫sql),無需寫Dao,sqltoy提供了SqlToyLazyDao,同時提供了quickvo從數據庫生成POJO。
    • 根本上杜絕了sql注入問題
    • 最科學的sql編寫方式

    * sqltoy的sql編寫(支持嵌套)

    select 	*
    from sqltoy_device_order_info t 
    where #[t.ORDER_ID=:orderId]
          #[and t.ORGAN_ID in (:authedOrganIds)]
          #[and t.STAFF_ID in (:staffIds)]
          #[and t.TRANS_DATE>=:beginDate]
          #[and t.TRANS_DATE<:endDate] 

    * mybatis同樣功能實現

    select *
     from sqltoy_device_order_info t 
     <where>
        <if test="orderId!=null">
    	and t.ORDER_ID=#{orderId}
        </if>
        <if test="authedOrganIds!=null">
    	and t.ORGAN_ID in
    	<foreach collection="authedOrganIds" item="order_id" separator="," open="(" close=")">  
                #{order_id}  
     	</foreach>  
        </if>
        <if test="staffIds!=null">
    	and t.STAFF_ID in
    	<foreach collection="staffIds" item="staff_id" separator="," open="(" close=")">  
                #{staff_id}  
     	</foreach>  
        </if>
        <if test="beginDate!=null">
    	and t.TRANS_DATE>=#{beginDate}
        </if>
        <if test="endDate!=null">
    	and t.TRANS_DATE<#{endDate}
        </if>
    </where>
    • 緩存翻譯大幅提升性能,減少多表關聯,讓sql直觀可維護

    • 最高等級的分頁優化

    • 支持用算法代替sql實現行列轉換、同比環比、分組匯總等

    • 支持分庫分表
    • sqltoy支持跨數據庫函數自適應:一套sql可以自適應多種數據庫
    • 提供了5種默認的非數據庫相關的主鍵策略
    1、shortNanoTime 22位有序安全ID,格式: 13位當前毫秒+6位納秒+3位主機ID
    2、nanoTimeId 26位有序安全ID,格式:15位:yyMMddHHmmssSSS+6位納秒+2位(線程Id+隨機數)+3位主機ID
    3、uuid:32 位uuid
    4、SnowflakeId 雪花算法ID
    5、redisId 基于redis 來產生規則的ID主鍵
    • 提供了通用字段賦值處理

    • 提供了樹形表的統一處理機制

    • sql文件更新自動重載,便于開發階段無需重啟應用
    • 慢sql統計功能
    • 便于跟其他拓展平臺集成,如報表平臺、配置化服務平臺
    public class SqlToyContext implements ApplicationContextAware {
    
    ? ?// 省略其他代碼
    
    ? /**
    ?? ? * @todo 提供可以動態增加解析sql片段配置的接口,并返回具體id,用于第三方平臺集成,如報表平臺等
    ?? ? * @param sqlSegment
    ?? ? * @return
    ?? ? * @throws Exception
    ?? ? */
    ?? ?public synchronized SqlToyConfig parseSqlSegment(Object sqlSegment) throws Exception {
    ?? ??? ?return scriptLoader.parseSqlSagment(sqlSegment);
    ?? ?}
    
    }

     

    本站文章除注明轉載外,均為本站原創或編譯。歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動共創開源社區。
    轉載請注明:文章轉載自 OSCHINA 社區 [http://www.url23.com]
    本文標題:極致性能 sqltoy-orm-4.12.9 發版
    加載中
    此新聞有 2 條評論,請先登錄后再查看。
    返回頂部
    頂部
    聚看影院