您现在的位置是:首页 > 文章详情

极致查询性能 sqltoy-orm-4.12.8 发版增加对国产达梦数据库支持

日期:2020-06-06点击:510

更新内容

1、主要增加对国产达梦数据库的支持(目前除updateFetch:单次交互完成锁记录、修改、返回结果报游标错误外其他功能都通过测试)
2、修复因增加oceanBase方言导致sqlite方言未放入方言池中产生的bug
3、增加findEntity分页功能,便于单表查询直接可以链式代码中完成
4、优化Query()链式查询增加分页,同时将Page()链式分页代码标注为作废
5、优化一些注释和日志输出

开源地址:

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统计功能
  • 便于跟其他拓展平台集成,如报表平台、配置化服务平台

```java

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);
    }

}

```

原文链接:https://www.oschina.net/news/116230/sqltoy-orm-4-12-8-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章