发布于 2017-12-07 23:27:28 | 134 次阅读 | 评论: 0 | 来源: 网友投递
beetlsql mybatis 功能 beetl 实现
BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。
BeetlSQL 2.10.11 发布了,本次发布增加了Query和LambdaQuery,增强了单表操作
#IGNWC 单表查询增强
#IGJ25 SQLManager.select 方法在有rowMapper的情况下,clazz参数不能指定Map.clas
#IGINU SimpleCacheInterceptor 缓存无效的错误修复
#GFAD 主键子段已经被赋值情况下,不应该用自动生成的主键值替换
#IGFAA insert时,@AssignID生成的ID不能在autoAssignKey=true模式下被带回
#IGD92 自动生成sql语句不能修改占位符
#IGCFJ JPA2NameConverison不支持TailBean
单表使用增强例子:
SQLManager sql = ... List<User> list = sql.query(User.class).andEq("name","hi").orderBy("create_date").select();
如果使用Java8,可以是使用LambdaQuery
List<User> list1 = sql.query(User.class).lamdba().andEq(User::getName, "hi").orderBy(User::getCreateDate).select();
Query接口分为俩类:
一部分是触发查询和更新操作,api分别是
select 触发查询,返回指定的对象列表
single 触发查询,返回一个对象,如果没有,返回null
count 对查询结果集求总数
delete 删除符合条件的结果集
update 更新选中的结果集
另外一部分是各种条件:
方法 | 等价sql |
---|---|
andEq,andNotEq | ==,!= |
andGreat,andGreatEq | >,>= |
andLess,andLessEq | <,<= |
andLike,andNotLike | LIKE,NOT LIKE |
andIsNull,andIsNotNull | IS NULL,IS NOT NULL |
andIn ,andNotIn | IN (...) , NOT IN(...) |
andBetween,andNotBetween | BETWEEN ,NOT BETWEEN |
and | and ( .....) |
or系列方法 | 同and方法 |
limit | 限制结果结范围,依赖于不同数据库翻页 |
orderBY | ORDER BY |
groupBy | GROUP BY |
<dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</artifactId> <version>2.10.1</version> </dependency>
BeetlSql 是全新的Java 数据库访问 工具,具有如下特性:
开发效率:
1 无需注解,自动使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量
2 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型
3 SQL 模板基于Beetl实现,更容易写和调试,以及扩展
4 代码生成pojo类和sql模版,可以针对单个表(或者视图),甚至是整个数据库。能减少代码编写工作量
维护性:
5 SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。
可以自动将sql文件映射为dao接口类
6 直观灵活的支持一对一,一对多,多对多关系映射而不引入复杂的OR Mapping概念和技术。
7 具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能。
8 支持各种数据库,真正的跨数据库平台