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 阅读文档源码和例子在线体验多库使用性能测试