BeetlSQL 3.14.0 发布,流行 Java ORM 工具

本次发布@最后夏天,@慕容 提出的建议

  •  mapper的defaut method调用,支持jdk7,jkd8,jdk9,jdk10 ,jdk11,jdk12,jdk13,jdk14,jdk15,jdk16,jdk17
  • 逻辑删除支持 ,内置查询(SQLManager,或者Query)的时候考虑逻辑删除字段,这需要配置sqlManager.setQueryLogicDeleteEnable 才能生效。

单元测试代码位置

    @Test
	public void testLogicDelete(){

		ProductOrder order = new ProductOrder();
		order.setCreateDate(new Date());
		order.setStatus(0);
		sqlManager.insert(order);
		long total = sqlManager.allCount(ProductOrder.class);
		Assert.assertEquals(2,total);
		//逻辑删除
		sqlManager.deleteById(ProductOrder.class,order.getId());
		total = sqlManager.allCount(ProductOrder.class);
		//还是总是2
		Assert.assertEquals(2,total);


		ProductOrder dbOrder = sqlManager.unique(ProductOrder.class,order.getId());
		Assert.assertEquals(1L,dbOrder.getVersion().longValue());

		Query<ProductOrder> query = sqlManager.query(ProductOrder.class);
		query.andEq("id",order.getId());
		dbOrder = query.unique();
		Assert.assertEquals(1L,dbOrder.getVersion().longValue());

		//如下代码包测试逻辑删除部分,实际情况是需要配置QueryLogicDeleteEnable
		//删除生成的缓存
		sqlManager.refresh();
		sqlManager.setQueryLogicDeleteEnable(true);

		//考虑逻辑删除,查询不出来
		dbOrder = sqlManager.single(ProductOrder.class,order.getId());
		Assert.assertNull(dbOrder);

		query = sqlManager.query(ProductOrder.class);
		query.andEq("id",order.getId());
		dbOrder = query.single();
		Assert.assertNull(dbOrder);

		//逻辑删除不在查询范围内
		long newTotal  = sqlManager.allCount(ProductOrder.class);
		Assert.assertEquals(1,newTotal);

		newTotal  = sqlManager.all(ProductOrder.class).size();
		Assert.assertEquals(1,newTotal);


		ProductOrder template = new ProductOrder();
		template.setId(order.getId());
		int queryCount = sqlManager.template(template).size();
		Assert.assertEquals(0,queryCount);

		//恢复默认值
		sqlManager.refresh();
		sqlManager.setQueryLogicDeleteEnable(false);

	}
dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetlsql</artifactId>
    <version>3.14.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

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

猜你喜欢

转载自www.oschina.net/news/190576/beetlsql-3-14-0-released