我们不生产SQL,我们只是SQL的搬运工!
Lambda 风格的流式 SQL 查询工具,支持多表 lefjoin,from(子表),sum case , iif ,group by(子表属性)... 集成了SQL2O,JDBCTEMPLATE实现CRUD,分页查询等. 自我感觉良好,有了这个小工具,可以忘却 Hibernate,Mybatis...
Fluent-SQL 优势所在:
世面上有的 ORM 我多数都用过,用得最多的是 Hibernate,Mybatis. 日子久了我就在想有没有一种 ORM 既易用而又高性能的呢?鱼与掌真的不能兼得吗? 要说高性能,原生SQL肯定是性能最高,可是原生SQL却有硬代码,并且因为前端的查询条件的可选性,自己手动拼接查询条件时,必然会有许许多多的 IF(null!=xx){sql}... , 这个缺点 Hibernate,Mybatis 一样也会有. 这催发了我 开发出 fluent-sql 这个项目, 这只是一个工具类, 却绝对会让你大叫: SHUANG! SHUANG! SHUANG!
fluent-sql + sql2o ,就是性能与易用的经典示范!
SQL2O 项目地址 : https://github.com/aaberg/sql2o
v0.0.8 新增加FluentSql 自己的基于原生JAVA JDBC的底层数据访问,可以完全不依赖第三方ORM实现CRUD,查询效率得到重大的提升。
测试结果如下(同一批数据,各ORM随机查询1000次):
======================================================================
RUNNING 1000 ITERATIONS THAT LOAD UP A POST ENTITY
Select Results
-------------------------
HandCoded took 11ms
FluentSql took 13ms (18.18% slower)
Sql2oTypical took 15ms (36.36% slower)
ApacheDbUtilsTypical took 19ms (72.73% slower)
Sql2oNameType took 22ms (100.00% slower)
BeetlSqlTypical took 25ms (127.27% slower)
FluentSqlNameType took 32ms (190.91% slower)
JDBI took 44ms (300.00% slower)
MyBatis took 51ms (363.64% slower)
SpringJdbcTemplateTypical took 56ms (409.09% slower)
SpringJdbcTemplateNameType took 60ms (445.45% slower)
HibernateTypical took 66ms (500.00% slower)
JOOQ took 81ms (636.36% slower)
======================================================================
测试用例在:fluentsql-core包test目录下的PojoPerformanceTest.class
SELECT user.user_name AS userName,dept.dept_name AS deptName FROM `user` AS user
LEFT JOIN `dept` ON user.dept_id = dept.id
WHERE (LOCATE (user.user_name,'jack')>0)
GROUP BY user.dept_id HAVING (user.dept_id>0)
ORDER BY user.dept_id ASC,user.user_name DESC
等同与:
String sql = new Lq<>(User.class)
.select(User::getUserName)
.select(Attr.parse(Dept::getDeptName))
.leftJoin(Dept.class)
.andLike(User::getUserName, "jack")
.group(User::getDeptId)
.having(User::getDeptId, Qe.Opt.GT, 0)
.asc(User::getDeptId)
.desc(User::getUserName)
.build();
增加对本项目的使用,您可以按自己项目需求只选择对子项目的依赖 fluentsql-core | fluentsql-sql2o | fluentsql-jdbctemplate
<dependency>
<groupId>com.artfii.fluentsql</groupId>
<artifactId>fluentsql-core</artifactId>
<version>0.0.17.20</version>
</dependency>
0.0.17.20 不在维护jdbctemplate/sql2o子项目
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )