BeetlSQL,Java Dao工具 BeetlSQL

BeetlSQL,Java Dao工具 BeetlSQL

BSD
Java 查看源码»
跨平台
2015-08-26
闲大赋

疫情之下,程序员如何转型?共享数字化转型加速度,就在微软在线技术峰会>>>

BeetlSQL 是一个全功能 DAO 工具,同时具有 Hibernate 优点 & Mybatis 优点功能,适用于承认以 SQL 为中心,同时又需求工具能自动能生成大量常用的 SQL 的应用。

BeetlSQL介绍
派别:SQL为中心
  * 强化SQL管理,通过md文件管理sql,使用Beetl模板编写复杂sql
  * 简单SQL可以通过Query类链式API完成
   * 内置常见增删改查功能,节省项目50%工作量
* 全面支持跨数据库平台
* 支持一对一,一对多等常见的ORM映射
* 其他
   * 具备代码生成功能
   * 主从支持
   * 支持Interceptor,如Debug,Cache等


内置增删改查

void insert(T entity);
int updateById(T entity);
int updateTemplateById(T entity);
int deleteById(Object key);
T unique(Object key);
T single(Object key);
T lock(Object key);
List<T> all(); 
List<T> template(T entity);
<T> T templateOne(T entity); 
List<T> execute(String sql,Object... args);
....等等大量内置方法且可以扩展内置方法



Query查询

List<User> list = userDao.createQuery().andEq("name","hi").orderBy("create_date").select();

如果是Java8,且引入了对jaque库依赖,则可以

List<User> list1  = userDao.createQuery().lamdba().andEq(User::getName, "hi").orderBy(User::getCreateDate).select();

管理SQL

@SqlResource("console.user")
public interface UserConsoleDao extends BaseMapper<SysUser> {

    void batchDelUserByIds(List<Long> ids);
    void batchUpdateUserState( List<Long> ids,  GeneralStateEnum stateEnum);
    @Sql("update sys_user set password=? where id=?")
    int changePassword(String newPassword,long id);


}


对应的sql文件是console/user.md,内容如下

batchDelUserByIds
===
    update SYS_USER u set u.del_flag = 1 where u.id in( #join(ids)#)
    
batchUpdateUserState
===
    update SYS_USER u set u.state = #state# where u.id in( #join(ids)#)

关系映射

selectUserAndDepartment
===
    select * from user where user_id=#userId#
    @ orm.single({"departmentId":"id"},"Department");
    @ orm.many({"id":"userId"},"user.selectRole","Role");


user.selectRole
===

    select r.* from user_role ur left join role r on ur.role_id=r.id
where ur.user_id=#userId#

也支持注解说明映射关系

与hiberante,myabtis比较

的码云指数为
超过 的项目
加载中

评论(20)

_
_casonol
请问下 beetl sql 有内置拦截器吗? 能实现 sql拦截,以做到数据结果过滤吗 ?
bako
bako
sql写注解里很烦。
哎呦-又忘了
哎呦-又忘了
我就想知道,一对多对象映射支持否
w
wolf_haung
思路跟我的一样,只是不知道BUG多不多。
选择与努力
选择与努力
遇到一个问题,mysql 和Spring boot 整合beetl 长时间不访问项目,会出现连接不上数据库,提示 无法回滚事务, 不知道怎么回事,请大神们指导下
alirissss
alirissss
留一个阿里云优惠券:www.izhuanyer.com
马丁的早晨
马丁的早晨
2017投票没有 #Beetl##BeetlSQL#,拒绝投票
马丁的早晨
马丁的早晨
2017投票没有 #Beetl##BeetlSQL#,拒绝投票
高开天
高开天
各位大神 beetlSQL 如何实现 多数据源方式
阿_嚏
阿_嚏
注解为什么不用jpa的注解呢?个人认为这样更优雅

BeetlSQL 2.12.21 发布,Java Dao 工具

本次发布修复俩个小Bug Query类无法重复使用的bug,虽然文档提示不能重复使用Query,但有很多人还是用了,所以只好BeetlSQL将其改为可以重复使用 LambdaQuery query =sql.lambdaQuery(Use...

03/18 11:37

BeetlSQL 2.12.19 发布,Java Dao 工具

这次发布增加了一个扩展支持,并且更新Beetl到最新版本 新增了一个对LocalDateTime支持。 Maven: <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</artifactId> ...

02/09 15:41

BeetlSQL 2.12.18 发布,Java Dao 工具

本次发布修复了俩个小问题 * Oracle 下不识别java.util.Date子类 * upsert方法并未使用NameConvesion的BUG <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</arti...

01/29 14:35

BeetlSQL 2.12.11 发布,Java Dao 工具

本次增加了一个小功能,Query提供俩个静态方法filterEmpty,filterNull,这俩个方法返回StrongValue的子类,当andEq等方法的参数是StrongValue子类的时候,将根据条件拼接SQL语句。 Blog ...

2019/08/29 10:57

BeetlSQL 2.12.10 发布,Java Dao 工具

本次发布增加俩个小功能,适用于一些高级应用 * SQLManager增加vaidateSqlId方法,用于校验sql模板语句是否正确,如果不正确,返回错误符号,原因和相应行数 * SQLManager 增加containSqlId方...

2019/08/26 14:05

BeetlSQL 2.11.6 发布,Java Dao 工具

BeetlSQL 2.11.6 发布增加了一个新特性,参考MyBatis,提供了SqlProvider 特性 @SqlProvider(provider = UserSqlProvider.class) User selectAll1( Integer id); @SqlPro...

2019/05/07 12:23

BeetlSQL 2.11.2 发布,Java Dao 工具

BeetlSQL 2.11.2 发布了,改进记录包括: #ITMW3 修复:最新版本2.11.1在翻页sql语句中使用use函数,执行sql时会多传同样的值进来 #IS9UJ 修复:TemplatePageAmi.java里的else是不是永远执行不...

2019/03/19 09:27

BeetlSQL 2.11.1 发布,Java Dao 工具

果然小数位是0的版本发布都会有问题,2.11.1 修复了上一个版本新增自定义注解功能的bug,建议更新到新的版本 <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</a...

2019/03/05 09:25

BeetlSQL 2.11.0 发布,Java Dao 工具

这次是在2.10.x迭代45个版本后,更新到2.11.0,主要是调整BeetlSQL内部代码,以提供更强的定制性 2.11.0 增强了属性自定义注解,使用者在Bean和数据库之间 通过BeetlSQL提供的序列化和反序列...

2019/02/28 09:28

BeetlSQL 2.10.45 发布,Java Dao 工具

新增upsert方法,用于插入或者更新,其他增强还有 #IPOPA 乐观锁更新增强,允许指定一个版本初始值 #IPVKI 分表中支持将实体映射的表用其他表代替,如将User对象可以映射到T_USER_001... <de...

2019/02/02 22:04

没有更多内容

加载失败,请刷新页面

1
回答
在.md里写的自定义的insert语句,如何返回主键

@闲大赋 您好,想跟您请教个问题: 比如一个名叫 goods 的表 只有 id(主键) 和 goods_name 俩个字段,当我在.md文件里写了一句新增...

2019/11/08 11:25
2
回答
beetlSQL的内置updateById更新数据的时候 set值默认不进行非空判断吗
闲大赋 的回答 2017/02/17 10:56
最佳答案
使用 updateTemplateById 来忽略空值
1
回答
beetlsql

@闲大赋 你好,想跟你请教个问题:beetl有没有直接处理存储过程结果集的方法

2018/12/19 10:29
119
回答
高手问答第 178 期 —— Beetl 作者带来的分布式架构分享
博文视点 的回答 2017/11/30 16:42
最佳答案
高手问答第 178 期 —— 高手问答第 178 期 —— Beetl 作者带来的分布式架构分享 @Flylinran @德古拉-大猫 @赤脚小子 @Rober萝卜 @ChrisYuan 恭喜以上五位网友或获得《Spring Boot 2精髓:从构建小系统到架构分布式大系统》图书一本 请私信 ...
1
回答
beetlSQL新增数据的时候获取主键的方式

public int save(Member member) { UUIDGenerate.UUID(sqlManager); KeyHo...

2017/02/27 16:52
8
回答
BeetlSQL 单字段保存异常
闲大赋 的回答 2017/02/15 09:33
最佳答案
明白了,那这是个bug,你的贴图已经清楚的显示出来了, insert into xxxx () values () 列表为空 会出错 我改改吧,下个版本发布吧,可能就这俩天
11
回答
beetlsql SQL 模板参数日期格式化无效
闲大赋 的回答 2017/02/10 15:01
最佳答案
现在临时解决方法,你别用格式化函数,因为还不支持,你可以写个方法,或者用现成的方法,比如 ${strutil.formatDate(user.orderTime,’yyyy-MM-dd’)}
2
回答
Spring boot 集成 beetlsql运行警告,但不影响使用

系统按照 http://git.oschina.net/xiandafu/springboot_beetl_beetlsql 示例搭建。 代码如下: /*...

2017/01/19 17:11
1
回答
user.findById接口参数如下位置{0=没有申明params的参数}定义错误,无法映射

public interface UserDao extends BaseMapper<User>{ User findById(String ...

2016/12/16 15:44

没有更多内容

加载失败,请刷新页面

BeetlSQL 实现 ORMapping查询

我在 hibernate,mybatis,beetlsql 全面比较 中说明了BeetlSQL 在开发效率,维护性,跨数据库等各指标全面比hibernate 占优,但在ORM 方面不如Hibernate,这么多年来,hibernate已经成为Java的...

2016/08/21 20:44
8K
5
Fastjson序列化导致BeetlSQL无限循环查询的解决方案

前言 BeetlSQL最近的更新新增了@OrmQuery注解,作用是可以让内置生成的SQL自动去延迟级联加载对象,此功能的增加让BeetlSQL在ORM功能方面完全有了抗衡Hibernate的资本。这么新鲜刺激的功能,...

2016/11/22 23:41
597
1
hibernate,mybatis,beetlsql 全面比较

这是我的一个综合评分,总共分为12个单项,每个单项最高5分,最低0分。注意,评价只包含这些软件提供的标准功能,不包含第三方提供的功能,如代码生成等。 开发效率 hibernate 能获取数据库m...

2016/02/19 11:42
1.8W
8
Beetlsql扩展之自定义Mapper

BeetlSql 有一个BaseMapper,提供了很多内置的Dao操作,如增删改查等10几个方法,用户只需要些一个类继承此接口便能很快的完成一个Dao,比如 public interface UserDao extends BaseMapper<...

2017/09/26 21:59
1.3K
0
BeetlSQL,简单和强大数据库访问工具(更新)

beetlsql 仍然是一个在开发的工具,它集合了hibernate和mybatis的优点,去除了各自缺点,让开发人员能更方便得开发数据库应用

2015/08/17 12:04
2.6W
10
SpringBoot 整合 BeetlSQL

SpringBoot 整合 BeetlSQL 1. beetlsql介绍 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应...

2018/12/13 16:31
939
0
BeetlSql 单表查询工具(Query)使用说明

本文转自BeetlSQL开发者 Gavin-King的博客 在实际应用场景中大部分时候是在针对单表进行操作,单独的写一条单表操作的SQL较为繁琐,为了能进行高效、快捷、优雅的进行单表操作,Query查询器诞...

2017/12/25 09:45
1.2K
2
02.Beetl模板的基础用法 【变量、循环、条件】---《Beetl视频课程》

本期视频做了一个博客的首页列表; 内容简介:springboot 集成 beetlsql;使用for循环,使用if控制语句,使用虚拟属性,定义变量等等 一起学beetl目录:https://my.oschina.net/u/1590490?ta...

2018/11/18 19:21
2.4K
0
09.ajax局部渲染---《Beetl视频课程》

本期视频实现分类实时获取; 内容简介:使用了局部渲染技术,实现分类的实时获取 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK Beetl满足了更...

2018/12/12 17:46
613
0
XLSUnit,面向数据库的单元测试工具

XLSUnit 面向数据库应用的单元测试框架,使用excel,作为输入,以及输出比较,适合大量数据库操作. 如下情况可以使用xlsunit 必须使用Spring或者Spring Boot,因为会利用Spring单元测试事务回滚机...

2017/06/29 14:06
675
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部