不想写sql?试试这款轻量级JAVA ORM框架!

1,113 阅读4分钟

  大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!

  今天小编推荐一款Java ORM框架——BeeBee 是一个简单,易用,功能强大,开发速度快,编码少的 JAVA ORM 框架。

  Bee开发速度快、简单、自动高效且具有人工智能(AI)特性!它的编码复杂度是O(1),不管操作多少张表,都可以不需要写额外的Dao代码。Bee同时支持面向对象和自定义SQL两种方式,简单场景和复杂场景都可以应用。

  Bee复杂查询支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化;具有分布式特性。高级要求,还可以方便自定义SQL语句。

  如果说Mybatis在Hibernate之后不是重复造轮子,那Bee在Hibernate和Mybatis之后也不会是重复造轮子!

功能特点

  • 1.接口简单,使用方便。Suid接口中对应SQL语言的select,update,insert,delete操作提供4个同名方法。
  • 2.使用了Bee,你可以不用再另外编写dao代码,直接调用Bee的api即可完成对DB的操作。
  • 3.约定优于配置:Javabean没有注解,也不需要xml映射文件,只是纯的Javabean即可,甚至get,set方法不用也可以。
  • 4.智能化自动过滤null和空字符串,不用再写判断非空的代码。
  • 5.动态/任意组合查询条件,不需要提前准备dao接口,有新的查询需求也不用修改或添加接口。
  • 6.支持原生SQL排序, 原生语句分页(不需要将全部数据查出来)。
  • 7.支持直接返回Json格式查询结果; 链式编程。
  • 8.支持事务、for update,支持批处理操作,支持原生SQL(自定义sql语句),支持存储过程。
  • 9.支持只查询一部分字段。
  • 10.支持面向对象方式复杂查询、多表查询(无n+1问题; 支持:一对一,一对多,多对一,多对多)。
  • 11.一级缓存,概念简单,功能强大;一级缓存也可以像JVM一样进行细粒度调优;智能缓存,支持更新配置表,不用重启。
  • 12.表名与实体名、字段名与属性名映射默认提供多种实现,且支持自定义映射规则扩展。
  • 13.多种DB支持轻松扩展(MySQL,MariaDB,Oracle,H2,SQLite,PostgreSQL等直接可用)。
  • 14.无第三方插件依赖;可零配置使用。
  • 15.提供表对应的Javabean自动生成工具,Javaweb后端代码根据模板自动生成;能打印非占位符的可执行sql,方便调试。
  • 16.支持读写分离一主多从, 仅分库等多数据源模式。
  • 17.分布式环境下生成连续单调递增(在一个workerid内),全局唯一数字id;提供自然简单的分布式主键生成方式。
  • 18.支持同库分表,动态表名映射。
  • 19.性能好:接近JDBC的速度;文件小:Bee V1.8 jar 仅217k。

应用示例

import java.math.BigDecimal;
import java.util.List;
import org.teasoft.bee.osql.Suid;
import org.teasoft.honey.osql.core.BeeFactory;

/*
 * 查,改,增,删 Suid (select,update,insert,delete)实例
 */
public class SuidExam {
	
	public static void main(String[] args) {

		Suid suid=BeeFactory.getHoneyFactory().getSuid();
		
		//需要先生成相应的Javabean
		Orders orders1=new Orders();
		orders1.setId(100001L);
		orders1.setName("Bee(ORM Framework)");
		
		//1:select查询实例
		//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件
		List<Orders> list1 =suid.select(orders1);  //select
		for (int i = 0; i < list1.size(); i++) {
			System.out.println(list1.get(i).toString());
		}
		
		//2:update更新实例
		orders1.setName("Bee--ORM Framework");
		//默认只更新需要更新的字段. 过滤条件默认只用id字段,其它需求可用SuidRich中的方法.
		int updateNum=suid.update(orders1);   //update
		System.out.println("update record:"+updateNum);
		
		Orders orders2=new Orders();
		orders2.setUserid("bee");
		orders2.setName("Bee(ORM Framework)");
		orders2.setTotal(new BigDecimal(91.99));
		orders2.setRemark("");  //empty String test
		
		//3:insert 插入实例
		int insertNum=suid.insert(orders2); //insert  		
		//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动插入数据库中. 
		//方便结合DB插值,如id自动增长,由DB插入;createtime由DB默认插入
		System.out.println("insert record:"+insertNum);
		
		//4:delete 删除实例
		//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件
		//int deleteNum=suid.delete(orders2);   //delete
		//System.out.println("delete record:"+deleteNum);
	}
}

结尾

  本期就分享到这里,我是小编南风吹,专注分享好玩有趣、新奇、实用的开源项目及开发者工具、学习资源!希望能与大家共同学习交流,欢迎关注我的公众号**【Github导航站】**。