Bee 是一个ORM框架。关注:省时/优雅、简易、自动( Tea: Timesaving/Tasteful, Easy, Automatic) 特性。减少开发人员的编码量,只为一个目标--让别人不再叫我们码农!让Bee成为软件工程师们手上回味无穷的茶!品茶,品软件!
Bee比其它JAVA的ORM框架,类ORM框架要容易使用,容易上手。十分钟即可学会使用。且对于很多增加的新需求不需要增加接口或更改sql配置文件。Bee的编码复杂度为O(1)。
工欲善其事必先利其器!——《论语·卫灵公》
Bee主要功能特点介绍:
Bee概念简单(10分钟即可入门)、功能强大。
Bee 简化了与DB交互的编码工作量.连接,事务都可以由Bee框架负责管理。
省时,开发速度快
简单易用
- 1.接口简单,使用方便。Suid接口中对应SQL语言的select,update,insert,delete操作提供4个同名方法。
- 2.使用了Bee,你可以不用再另外编写dao代码,直接调用Bee的api即可完成对DB的操作。
- 3.约定优于配置:Javabean没有注解,也不需要xml映射文件,只是纯的Javabean即可,甚至get,set方法不用也可以。
- 4.智能化自动过滤null和空字符串,不再需要写判断非空的代码。
- 5.支持只查询一部分字段。
自动,功强强大
- 6.动态/任意组合查询条件,不需要提前准备dao接口,有新的查询需求也不用修改或添加接口。
- 7.支持原生SQL排序, 原生语句分页(不需要将全部数据查出来)。
- 8.支持直接返回Json格式查询结果; 链式编程。
- 9.支持事务、多个ORM操作使用同一连接、for update,支持批处理操作,支持原生SQL(自定义sql语句),支持存储过程。
- 10.支持面向对象方式复杂查询、多表查询(无n+1问题; 支持:一对一,一对多,多对一,多对多)。
- 11.一级缓存,概念简单,功能强大;一级缓存也可以像JVM一样进行细粒度调优;支持可更新的长久缓存列表,更新配置表,不需要重启。
- 12.表名与实体名、字段名与属性名映射默认提供多种实现,且支持自定义映射规则扩展。
- 13.多种DB支持轻松扩展(MySQL,MariaDB,Oracle,H2,SQLite,PostgreSQL,SQL Server等直接可用)。
- 14.支持读写分离一主多从, 仅分库等多数据源模式(对以前的代码无需修改,该功能对代码是透明的,即无需额外编码),可同时使用多种类型数据库。
- 15.分布式环境下生成连续单调递增(在一个workerid内),全局唯一数字id;提供自然简单的分布式主键生成方式。
- 16.支持同库分表,动态表名映射。
- 17.可以不用表对应的Javabean也能操作DB。
- 18.无第三方插件依赖;可零配置使用。
- 19.性能好:接近JDBC的速度;文件小:Bee V1.8 jar 仅217k, V1.9.5 jar,仅315k。
辅助功能: - 20.支持自动生成表对应的Javabean,根据Javabean创建表,Javaweb后端代码根据模板自动生成;能打印非占位符的可执行sql,方便调试。
- 21.支持读取Excel,从Excel导入数据到DB,操作简单。
Bee已对外开源,开源地址:
GitHub - automvc/bee: Bee is an AI, easy and high efficiency ORM framework.
Bee在码云的网址:
bee: 互联网新时代的Java ORM工具,简单、高效,开发速度快!
还提供了许多与SpringMVC, Spring Boot的相关例子(请查看: 综合应用 部分)
以下为详细介绍:
最新版本 V1.9.8 (2021-11)
V1.9.5 (2021-05)
详细完整功能介绍
点击链接可查看 详细完整功能介绍
ORM Compare
ORM-Compare
测试环境: Windows.
数据库: MySQL (Version 5.6.24).
测试点: 批量插入;分页查询;事务(update and select).
批量插入(单位: ms) | |||||
5k | 1w | 2w | 5w | 10w | |
Bee | 529.00 | 458.33 | 550.00 | 1315.67 | 4056.67 |
MyBatis | 1193 | 713 | 1292.67 | 1824.33 | Exception |
分页查询(单位: ms) | |||||
20次 | 50次 | 100次 | 200次 | 500次 | |
Bee | 17.33 | 58.67 | 52.33 | 38.33 | 57.33 |
MyBatis | 314.33 | 446.00 | 1546.00 | 2294.33 | 6216.67 |
事务(update and select) (单位: ms) | |||||
20次 | 50次 | 100次 | 200次 | 500次 | |
Bee | 1089.00 | 70.00 | 84.00 | 161.33 | 31509.33 |
MyBatis | 1144 | 35 | 79.67 | 146.00 | 32155.33 |
快速开始:
1. 引入Bee
1.1 maven工程,添加如下依赖
<dependency>
<groupId></groupId>
<artifactId>bee</artifactId>
<version>1.9.8</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>honey</artifactId>
<version>1.9.8</version>
</dependency>
<!--for log framework,Excel(poi) -->
<dependency>
<groupId></groupId>
<artifactId>bee-ext</artifactId>
<version>1.9.8</version>
</dependency>
1.2 也可以直接下载jar文件
2. 创建数据库和表
举例如下:
创建一个数据库,默认名称为bee.
可以用init-data(user-orders)-脚本创建表和插入初始化数据.
3. 更新数据库的配置信息(在)
注:如果还没有文件,可以自己新建一个.
也可以配置数据源(此处只是一个例子).
//#=MySQL
=MySQL
=
=jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8
= root
=
4. 生成Javabean Orders可参考:
Orders(Javabean)
Auto Genernate Javabean
5. 运行下面的 java代码
import ;
import ;
import ;
import ;
/**
* 查,改,增,删 Suid (select,update,insert,delete)实例
* @author Kingstar
* @since 1.0
*/
public class SuidExam {
public static void main(String[] args) {
Suid suid=();
//需要先生成相应的Javabean
Orders orders1=new Orders();
(100001L);
("Bee(ORM Framework)");
//1:select查询实例
//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件
List<Orders> list1 =(orders1); //select
for (int i = 0; i < (); i++) {
((i).toString());
}
//2:update更新实例
("Bee--ORM Framework");
//默认只更新需要更新的字段. 过滤条件默认只用id字段,其它需求可用SuidRich中的方法.
int updateNum=(orders1); //update
("update record:"+updateNum);
Orders orders2=new Orders();
("bee");
("Bee(ORM Framework)");
(new BigDecimal(91.99));
(""); //empty String test
//3:insert 插入实例
int insertNum=(orders2); //insert
//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动插入数据库中.
//方便结合DB插值,如id自动增长,由DB插入;createtime由DB默认插入
("insert record:"+insertNum);
//4:delete 删除实例
//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件
//int deleteNum=(orders2); //delete
//("delete record:"+deleteNum);
}
}
//注意: 事务,分页,排序,范围查询,查询结果直接返回json等都支持,这里只是一个入门例子.
//更加应用参考,请查看: 更多例子 和 综合应用 .
更多例子/测试用例
Bee+Spring-boot Demo
综合应用:
Java快速编程, 让Java的开发速度超过php和Rails。
更快的开发Java Web的新组合:
Bee+Spring+SpringMVC
包括仅分库多数据源实例
Bee+Spring+SpringMVC开发学校教务管理与分数管理系统
更快的开发Spring Cloud微服务的新组合:
Bee + Spring Boot
......
FAQ常见问题
点击链接可查看 FAQ常见问题
作者的电子邮箱email: honeysoft@
如有任何相关建议,欢迎给作者发邮件,不胜感激!
为了能及时解答大家的疑问,可以加入Bee的技术QQ群:992650213
同时,也欢迎你加入到Bee框架的开发之中,相信有你的加入,Bee会更加美好!
长按二维码可关注
更多重磅文章等着你!