BeetlSQL 3.14.0 released, popular Java ORM tool

This release @last summer, @Murong's suggestion

  •  Mapper's defaut method call, supports jdk7, jkd8, jdk9, jdk10, jdk11, jdk12, jdk13, jdk14, jdk15, jdk16, jdk17
  • Tombstone support, the tombstone field is considered when built-in query (SQLManager, or Query), which requires the configuration of sqlManager.setQueryLogicDeleteEnable to take effect.

unit test code location

    @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 has been independently developed since 2015. The goal is to provide a data access framework that is efficient in development, maintenance and operation. It has a wide range of applications, strong customization, and is particularly smooth to write database access code, no less than MyBatis. Whether you don’t want to write SQL, or want to write SQL better, BeetlSQL can meet this requirement. The currently supported databases are as follows

  • Traditional databases: MySQL (including various databases that support the MySQL protocol), MariaDB, Oralce, Postgres (including various databases that support the Postgres protocol), DB2, SQL Server, H2, SQLite, Derby, Shentong, Dameng, Huawei Gauss, NPC Jincang, PolarDB, GBase8s, GreatSQL, etc.
  • Big data: HBase, ClickHouse, Cassandar, Hive, GreenPlum
  • IoT time series database: Machbase, TD-Engine, IotDB
  • SQL query engine: Drill, Presto, Druid
  • In-memory databases: ignite, CouchBase

Read the documentation source code and examples to experience the multi-library usage performance test online     

Guess you like

Origin www.oschina.net/news/190576/beetlsql-3-14-0-released