极致查询性能 sqltoy-orm-4.12.6 发版

zhongxuchen
 zhongxuchen
发布于 2020年06月03日
收藏 19

精选30+云产品,助力企业轻松上云!>>>

开源地址:

更新内容

1、升级spring、elasticsearch、mongo依附包的版本
2、优化对mongodb查询支撑、改成直接经过过程mongoTemplate集成(本来是经过过程mongoDbFactory形式), 完美典范

参考典范:

https://github.com/chenrenfei/sqltoy-showcase/tree/master/trunk/sqltoy-nosql
见test下面MongoTest.java

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://aledoyoga.com]
本文标题:极致查询性能 sqltoy-orm-4.12.6 发版
加载中
此消息有 16 条评论,请先登录后再检查。
前往顶部
顶部