比 mybatis 强大优雅的 sqltoy-orm-4.11.6 发版了
开源地址:
- github: https://github.com/chenrenfei/sagacity-sqltoy
- gitee: https://gitee.com/sagacity/sagacity-sqltoy
更新内容:
- 剔除对BeanUtils的依赖,通过自身实现提升效率
- 优化sql打印功能,在项目模式时debug模式但日志等级不是debug模式时使用System.out进行输出,避免初学者在环境上遇到障碍。
- 分页查询支持泛型,避免强制类型转换
- 更全面的支持Byte、BigInteger等类型
说明:
很多人一见到什么"最”就天然的以为哗众取宠吸引眼球,而sqltoy则自认为已经很委婉了,各位看官可以针对下面的最,尤其号称“没有之一“的地方,可以用你们更强的东西来打脸,前提是:拿出东西来比较和反证!
在目前有这么多ORM框架的情况下,再搞一个开源框架的前提就是必须要比之前的好很多,而在中国如果不超过mybatis(plus)就根本没有必要投入精力做这件事!因为大家知道开源就是在别人忙挣钱或者玩乐的时候而你却在不计得失的奉献!而我希望给大家奉献一个真正有趣的有灵魂的框架!
sqltoy特性说明:
- 支持mysql、postgresql、db2、oracle、sqlserver、sqlite、clickhouse、elasticsearch等
- 具有JPA模式的CRUD功能(即CRUD无需写sql),无需写Dao,sqltoy提供了SqlToyLazyDao,同时提供了quickvo从数据库生成POJO。
- 根本上杜绝了sql注入问题
- 最科学最优雅(没有之一)的sql编写方式
mybatis的写法:
```xml
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>
```
sqltoy 的写法:两者差距凭良心来说不大吗?sqltoy顺应开发者的习惯,是一种“就应该是这样的”那种感觉!而mybatis则似乎总是扭着!既不直观易懂还不易维护!
<sql id="sqltoy_showcae"> <value> <![CDATA[ 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] ]]> </value> </sql>
- 极具特色的缓存翻译:还在CRUD吗?CRUD体现不出差距,让查询飞快才能赢得用户的夸赞!
缓存翻译,通过缓存大幅减少表关联查询,看下面的查询原本需要6张表关联,变成了一张表查询,岂能不快!
- 最强分页(没有之一),不要以为是吹牛,你深入了解后再评价,你之前的做法跟这个隔几条街!
看这篇文章: https://blog.csdn.net/zhongxu/article/details/105555803
- 最有利于sql不够强专注于其他方向的开发者:sql不强,sqltoy帮你补足!
- 提供了树形表的统一处理机制
- 提供了分库分表
- 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主键
-
sqltoy提供了统一字段赋值,解决创建时间、创建人、修改时间、修改人等信息的统一赋值。
- sql文件更新自动重载,便于开发阶段无需重启应用
- 慢sql统计功能
除上述特点外,sqltoy最大的特点是符合项目实践,提供了大量项目中用到的方法,如:取top记录、取随机记录、验证唯一性、存储过程调用、锁记录修改并返回结果等!
因为篇幅原因,不具体展开!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
xk-time 0.0.8 发布,Java 时间工具包
xk-time 0.0.8 发布了,更新如下: 1.增加减少时间精度计算 reduceAccuracyTo*,减少时间精度到秒,到分,到小时,到天等,计算出各种不同精确度的时间对象,方便使用。 比如,减少时间精度到天,reduceAccuracyToDay, 2020-04-23 00:00:00。 详细使用见测试代码或博客: https://my.oschina.net/xkzhangsan/blog/3450642 2.修复日期字符串解析为日期类问题。 解析日期yyyy-MM-dd,因为不包含LocalTime时间部分,解析报错:java.time.DateTimeException: Unable to obtain ...问题。 3.代码优化。
- 下一篇
ILSpy 6.0 Preview 3 发布,.NET 反编译工具
ILSppy 是一个开源的 .NET 反编译工具。目前,ILSpy 6.0 Preview 3已发布,该版本重新许可了 SharpDevelop 的最后一部分-树视图组件,此举的主要目的是为了使存储库保持一致性。 具体更新内容如下: 新语言功能 C# 7.0:更改通用标识符的语法歧义 UI改进 在 exe 和 dll 文件的 Windows 资源管理器上下文菜单中添加“Open with ILSpy”条目(通过 Options / Misc) 为便携式 PDB 添加了“调试元数据资源管理器”节点 现在可以从树视图中隐藏空的元数据表 “选择 PDB”上下文菜单:允许更改由 ILSpy 解析的 PDB 文件或从其他位置选择一个 各种稳定性修复 Enhancements ReadyToRun:修复#1889编制方法索引 ReadyToRun:避免急于解析(#1934) 更好地反编译局部功能,固定区域和显示类别 解决方案和项目反编译:添加缺少的 ProjectTypeGuids PDB generation 改进的代的序列点(#1967) PDB generation:在 LINQ 表达式中使...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果