当前位置: 首页 > 工具软件 > sqltoy-orm > 使用案例 >

mysql orm 框架_介绍新一代远比mybatis强大的ORM框架sqltoy-orm

寇鸿
2023-12-01

开源地址:

sqltoy特点说明:支持mysql、postgresql、db2、oracle、sqlserver、sqlite、clickhouse、elasticsearch、mongodb等

具有JPA模式的CRUD功能(即CRUD无需写sql),无需写Dao,sqltoy提供了SqlToyLazyDao,同时提供了quickvo从数据库生成POJO。

根本上杜绝了sql注入问题

最科学的sql编写方式

* sqltoy的sql编写(支持嵌套),简单直观,几乎直接从dbeaver中copy进来,后期维护也方便

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

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

}

}

```

 类似资料: