极致性能 sqltoy-orm-4.12.10升级了

站群域名批发整理:新内容

支持postgresql10+之后增加的 identity 主键策略

修复postgresql bytea类型转换错误

优化quickvo增加postgresql类型默认匹配

开源地址:

github: https://github.com/chenrenfei/sagacity-sqltoy

gitee: https://gitee.com/sagacity/sagacity-sqltoy

idea 插件(可在market直接检索sqltoy安装): https://gitee.com/threefish/sqltoy-idea-plugins

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

 

 

and t.ORDER_ID=#{orderId}

 

 

and t.ORGAN_ID in

 

#{order_id}

 

 

 

and t.STAFF_ID in

 

#{staff_id}

 

 

 

and t.TRANS_DATE>=#{beginDate}

 

 

and t.TRANS_DATE<#{endDate}

 

 

缓存翻译大幅提升性能,减少多表关联,让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 {

// 省略其他代码

public synchronized SqlToyConfig parseSqlSegment(Object sqlSegment) throws Exception {

return scriptLoader.parseSqlSagment(sqlSegment);

}

}

```

开源地址:

github: https://github.com/chenrenfei/sagacity-sqltoy

gitee: https://gitee.com/sagacity/sagacity-sqltoy

idea 插件(可在market直接检索sqltoy安装): https://gitee.com/threefish/sqltoy-idea-plugins

更新内容

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

 

 

and t.ORDER_ID=#{orderId}

 

 

and t.ORGAN_ID in

 

#{order_id}

 

 

 

and t.STAFF_ID in

 

#{staff_id}

 

 

 

and t.TRANS_DATE>=#{beginDate}

 

 

and t.TRANS_DATE<#{endDate}

 

 

缓存翻译大幅提升性能,减少多表关联,让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 {

// 省略其他代码

public synchronized SqlToyConfig parseSqlSegment(Object sqlSegment) throws Exception {

return scriptLoader.parseSqlSagment(sqlSegment);

}

}

```