BeetlSQL 3.20.0 发布,流行 Java ORM 工具

时间:2023-02-01 13:07:03

阳康后继续开源,本次发布建议更新

  • I6B7AN 修复注解@InheritMapper 解析映射目标为Object的BUG
    public static interface  CommonMapper<T> extends BaseMapper{
        @InheritMapper
        public List<T> implementByChild(T t);
    }
    
    @SqlResource("user")
    public static interface  MyTestUserMapper extends CommonMapper<User>{
    	//implementByChild 的映射对象是User, 查找文件是user.md中的implementByChild 
    }
    
    @SqlResource("admin")
    public static interface  MyTestAdminUserMapper extends CommonMapper<AdminUser>{
    	//implementByChild 的映射对象是AdminUser,查找文件是admin.md中的implementByChild 
    }

     

  • I6AWTZ 修复2022年10更新版本导致beetlsql多种数据库库支持的BUG

  • I634BU Spring Boot Starter 打包去掉对commons-dbcp 依赖

 

  • I617VE 修复@ResultProvider(AutoJsonMapper.class)注解与自定义AttributeConvert注解冲突
    @Data
    @ResultProvider(AutoJsonMapper.class) // 自动根据结果集映射到Bean
    public static class MyUserView2 {
        Integer id;
        @Coder //自定义注解
        String name;
        DepartmentEntity dept;
    }

     

  • I5ZWFO  Stream 接口 对Lambda的支持
     

    streamData = sqlManager.lambdaQuery(UserEntity.class).andEq(UserEntity::getRole,1).stream();
    streamData.foreach(user -> {
    	System.out.println(user.getName());
    });

     

  •  

    I63SGJ  修复当用户自定义分表逻辑抛异常时候,BeetlSQL提示有误的BUG
     

    @Table(name="${toShardTable('user')}") //如果toShardTable逻辑错误,抛出异常能正常显示错误逻辑
    public class UserEntity{
    }

     

 

  • maven

    <dependency>
        <groupId>com.ibeetl</groupId>
        <artifactId>beetlsql</artifactId>
        <version>3.20.0-RELEASE</version>
    </dependency>


    BeetlSQL 自主研发自 2015 年,目标是提供开发高效,维护高效,运行高效的数据访问框架,它适用范围广,定制性强,写起数据库访问代码特别顺滑,不亚于 MyBatis。你不想写 SQL 也好,或者想更好地写 SQL 也好,BeetlSQL 都能满足这要求,目前支持的数据库如下
     

  • 传统数据库:MySQL (包括支持 MySQL 协议的各种数据库), MariaDB ,Oralce ,Postgres (包括支持 Postgres 协议的各种数据库), DB2 , SQL Server ,H2 , SQLite , Derby ,神通,达梦,华为高斯,人大金仓,PolarDB,GBase8s,GreatSQL 等
  • 大数据:HBase,ClickHouse,Cassandar,Hive,GreenPlum
  • 物联网时序数据库:Machbase,TD-Engine,IotDB
  • SQL 查询引擎:Drill,Presto,Druid
  • 内存数据库:ignite,CouchBase


    如下测试包含了常用的 orm 操作: 多表联合查询映射(complexMapping),直接执行 sql (executeJdbc), 执行模板 sql (executeTemplate), 执行文件中的模板 sql ( File), 内置插入(insert),Query 调用链 (Query), 翻页查询 (pageQuery), 内置主键查询 (selectById), one2Many 自动关联查询 
  • Benchmark                         Mode  Cnt    Score     Error   Units
    JMHMain.beetlsqlComplexMapping   thrpt    5  177.412 ±  59.295  ops/ms
    JMHMain.beetlsqlExecuteJdbc      thrpt    5  365.386 ± 131.116  ops/ms
    JMHMain.beetlsqlExecuteTemplate  thrpt    5  313.983 ± 109.348  ops/ms
    JMHMain.beetlsqlFile             thrpt    5  343.331 ± 138.322  ops/ms
    JMHMain.beetlsqlInsert           thrpt    5  196.150 ±  87.106  ops/ms
    JMHMain.beetlsqlLambdaQuery      thrpt    5  219.579 ±  88.081  ops/ms
    JMHMain.beetlsqlOne2Many         thrpt    5   93.343 ±  37.242  ops/ms
    JMHMain.beetlsqlPageQuery        thrpt    5  161.726 ±  76.978  ops/ms
    JMHMain.beetlsqlSelectById       thrpt    5  302.450 ±  95.770  ops/ms
    JMHMain.jdbcExecuteJdbc          thrpt    5  782.097 ± 252.305  ops/ms
    JMHMain.jdbcInsert               thrpt    5  273.364 ± 133.523  ops/ms
    JMHMain.jdbcSelectById           thrpt    5  806.214 ± 261.218  ops/ms
    JMHMain.jpaExecuteJdbc           thrpt    5  107.990 ±  50.917  ops/ms
    JMHMain.jpaExecuteTemplate       thrpt    5  122.694 ±  46.344  ops/ms
    JMHMain.jpaInsert                thrpt    5   71.806 ±  37.828  ops/ms
    JMHMain.jpaOne2Many              thrpt    5   88.506 ±  36.018  ops/ms
    JMHMain.jpaPageQuery             thrpt    5  110.377 ±  35.236  ops/ms
    JMHMain.jpaSelectById            thrpt    5  260.832 ±  68.198  ops/ms
    JMHMain.mybatisComplexMapping    thrpt    5   86.302 ±  48.819  ops/ms
    JMHMain.mybatisExecuteTemplate   thrpt    5  177.863 ±  63.760  ops/ms
    JMHMain.mybatisFile              thrpt    5  143.007 ±  69.036  ops/ms
    JMHMain.mybatisInsert            thrpt    5  122.391 ±  45.541  ops/ms
    JMHMain.mybatisLambdaQuery       thrpt    5    9.109 ±   5.487  ops/ms
    JMHMain.mybatisPageQuery         thrpt    5   58.990 ±  16.252  ops/ms
    JMHMain.mybatisSelectById        thrpt    5  184.545 ±  60.096  ops/ms
    JMHMain.weedExecuteJdbc          thrpt    5  311.293 ± 161.801  ops/ms
    JMHMain.weedExecuteTemplate      thrpt    5  328.432 ± 106.103  ops/ms
    JMHMain.weedFile                 thrpt    5  338.572 ± 168.666  ops/ms
    JMHMain.weedInsert               thrpt    5  183.079 ± 101.693  ops/ms
    JMHMain.weedLambdaQuery          thrpt    5  293.843 ± 155.029  ops/ms
    JMHMain.weedPageQuery            thrpt    5  176.761 ±  88.406  ops/ms
    JMHMain.weedSelectById           thrpt    5  295.524 ± 147.727  ops/ms

     

    阅读文档 源码和例子 在线体验 多库使用 性能测试