BeetlSQL 3.3.13 发布,Java 的 DAO 工具

栏目: 软件资讯 · 发布时间: 3年前

内容简介:本周又发布了一个修复版本 修复了Saga事物嵌套回滚的Bug 修复注解实现TargetAdditional在翻页查询中不起作用的Bug 感谢网友使用BeetlSQL的高阶功能并给予详细反馈 Saga事务例子 SagaContext sagaContext = Saga...

本周又发布了一个修复版本

  • 修复了Saga事物嵌套回滚的Bug
  • 修复注解实现TargetAdditional在翻页查询中不起作用的Bug

感谢网友使用BeetlSQL的高阶功能并给予详细反馈

Saga事务例子

SagaContext sagaContext = SagaContext.sagaContextFactory.current();
try {
	sagaContext.start(gid);
	//模拟调用俩个微服务,订单和用户
	rest.postForEntity(orderAddUrl, null,String.class, paras);
	rest.postForEntity(userBalanceUpdateUrl, null,String.class, paras);
	if (1 == 1) {
		throw new RuntimeException("模拟失败,查询saga-server 看效果");
	}
	sagaContext.commit();
} catch (Exception e) {
	log.info("error " + e.getMessage(),e);
	log.info("start rollback  " + e.getMessage());
	sagaContext.rollback();
	return e.getMessage();
}

TargetAdditional 在多租户使用例子,添加租户路由信息

SchemaTenantUser user = sqlManager.unique(SchemaTenantUser.class,1);

String sql = "select * from ${schema}.sys_user ";
List<SchemaTenantUser> list = sqlManager.execute(sql,SchemaTenantUser.class,new HashMap());
System.out.println(list.get(0));

模型定义

@Data
@Table(name="${schema}.sys_user")
@SchemaTenant
public static class SchemaTenantUser{
    @Auto
    private Integer id;
    @Column("name")
    private String name;
}



/**
 * 每个租户一个库
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.TYPE})
@Builder(SchemaTenantContext.class) //注解实现类
public @interface SchemaTenant {

}
public class SchemaTenantContext implements TargetAdditional {
    public static ThreadLocal<String> tenantSchemaLocals = new ThreadLocal<>();
    @Override
    public Map<String, Object> getAdditional(ExecuteContext ctx, Annotation an) {

        String schema = tenantSchemaLocals.get();
        if(schema==null){
            throw new IllegalStateException("缺少租户信息");
        }
        Map map = new HashMap();
        map.put("schema",schema);
        return map;
    }
}

Maven

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

BeetlSQL 研发自2015年,目标是提供开发高效,维护高效,运行高效的数据库访问框架,它适用范围广,性能高,维护性好,写起数据库访问代码特别顺滑。目前支持的数据库如下

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

阅读文档 源码和例子 在线体验

BeetlSQL也支持IDEA插件,提供向导和自动提示

BeetlSQL 3.3.13 发布,Java 的 DAO 工具


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大演算

大演算

佩德羅.多明戈斯 / 張正苓,胡玉城 / 三采 / 2016-8-1 / 620

揭開大數據、人工智慧、機器學習的祕密, 打造人類文明史上最強大的科技——終極演算法! 有一個終極演算法,可以解開宇宙所有的祕密, 現在大家都在競爭,誰能最先解開它! .機器學習是什麼?大演算又是什麼? .大演算如何運作與發展,機器可以預測什麼? .我們可以信任機器學過的東西嗎? .商業、政治為什麼要擁抱機器學習? .不只商業與政治,醫學與科學界也亟需......一起来看看 《大演算》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换