BeetlSQL 2.11.6 发布,Java Dao 工具

闲大赋
 闲大赋
发布于 2019年05月07日
收藏 23

BeetlSQL 2.11.6 发布增加了一个新特性,参考MyBatis,提供了SqlProvider 特性

    @SqlProvider(provider = UserSqlProvider.class)
    User selectAll1( Integer id);

    @SqlProvider(provider = UserSqlProvider.class)
    @Sql()
    User selectAll2( Integer id);

    @SqlProvider(provider = UserSqlProvider.class,method="delete2")
    @Sql()
    int deleteUser(Integer id);

Provider类提供了如何生成sql语句,支持直接生成jdbc sql,也支持生成sql模板语句

public class UserSqlProvider {

    public String selectAll1(Integer id){
        StringBuilder sql = new StringBuilder("SELECT * FROM `user` WHERE 2 = 2 ");
        if (id!= null){
            sql.append("AND id = #id#");
        }
        return sql.toString();
    }

    public SQLReady selectAll2(Integer id){
        StringBuilder sql = new StringBuilder("SELECT * FROM `user` WHERE 2 = 2 ");
        if (id!= null){
            sql.append("AND id = ?");
        }
        SQLReady  sqlReady = new SQLReady(sql.toString(),new Object[]{id});
        return sqlReady;
    }
    ......
}

Maven

<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetlsql</artifactId>
    <version>2.11.6</version>
</dependency>

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

  • 无需注解,自动生成大量内置SQL,轻易完成增删改查功能

  • 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型

  • SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。

  • SQL 模板基于Beetl实现,更容易写和调试,以及扩展

  • 简单支持关系映射而不引入复杂的OR Mapping概念和技术。

  • 具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能

  • 内置支持主从数据库,通过扩展,可以支持更复杂的分库分表逻辑

  • 支持跨数据库平台,开发者所需工作减少到最小

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:BeetlSQL 2.11.6 发布,Java Dao 工具
资讯来源:http://ibeetl.com
加载中

精彩评论

rfvtgbyhn
rfvtgbyhn
比mybatis好用👍

最新评论(14

闲大赋
闲大赋

引用来自“yong9981”的评论

所有需要手工判断Null的地方都是要重构的。selectAll2在jSqlBox中可写成这样,供参考:
dao.pQueryForMapList("SELECT * FROM user WHERE 2 = 2 ",noNull("and id like ?", id,"%"));
你这个noNull,beetlsql完全写一个扩展函数支持了,就类是beetlsql得 isEmpty函数改一下而已。而且,jSqlBox总是建立在sql特别简单情况下,跟beetlsql 关注的场景不一样
yong9981
yong9981
所有需要手工判断Null的地方都是要重构的。selectAll2在jSqlBox中可写成这样,供参考:
dao.pQueryForMapList("SELECT * FROM user WHERE 2 = 2 ",noNull("and id like ?", id,"%"));
rfvtgbyhn
rfvtgbyhn
比mybatis好用👍
闲大赋
闲大赋

引用来自“shifeng1983”的评论

我选择sql写在xml里面,清楚
beetlsql 支持 在markdown里写sql,不用再写<;了,你懂的
s
shifeng1983
我选择sql写在xml里面,清楚
groot_
groot_
双击666
飛白
飛白
好!
stylefeng
stylefeng
six six six!
局座
局座
A
ACGN
MarkMark😁
返回顶部
顶部