Bee是一种更接近SQL语言思维的ORM框架,
一种开发速度和开发成本都不比Php,Ruby on Rail差的Java ORM框架,
而且它的编码复杂度是O(1),即用了Bee,**无论多少个表**,你都可以不用另外再写dao代码;**让你可以更专注业务逻辑的开发**。
**Bee** 网址:
https://github.com/automvc/bee
**Bee在gitee** 的网址:
https://gitee.com/automvc/bee
## 环境要求
jdk1.7+
## 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问题; 支持:一对一,一对多,多对一,多对多;返回结果根据子表是否使用List有两种呈现结构)。
* 11.**一级缓存**,概念简单,功能强大;一级缓存也可以**像JVM一样进行细粒度调优**;**支持可更新的长久缓存列表**,更新配置表,**不需要重启**。天生抵御缓存穿透 。
**二级缓存扩展支持;Redis二级缓存支持**。
* 12.表名与实体名、字段名与属性名映射默认提供多种实现,且支持**自定义映射规则扩展**。
* 13.**多种DB**支持轻松扩展(MySQL,MariaDB,Oracle,H2,SQLite,PostgreSQL,SQL Server,**Cassandra**等直接可用),理论上支持JDBC的DB都可以支持。
* 14.支持**读写分离**一主多从, 仅**分库**等**多数据源**模式(对以前的代码无需修改,该功能对代码是透明的,即无需额外编码);Jndi数据源支持。
* 15.**支持同时使用多种数据库(如同时使用Mysql,Oracle,SQL Server)**。
* 16.提供自然简单的分布式主键生成方案:**分布式**环境下生成**连续单调递增**(在一个workerid内),**全局唯一**数字**id**。
* 17.**支持同库分表,动态表名映射**。
* 18.**拦截器、多租户,支持自定义TypeHandler,处理查询的ResultSet结果**。
* 19.**Suid,SuidRich,PreparedSql,MapSuid,MoreTable支持设置数据源名称**。
* 20.可以不用表对应的Javabean也能操作DB。
* 21.**无**第三方插件依赖;可零配置使用。
* 22.**性能好:接近JDBC的速度;文件小:Bee V1.8 仅217k**, **V1.9.5 仅315k,V1.9.8 仅310k**。
**辅助功能**:
* 23.支持自动生成表对应的Javabean,根据Javabean创建表,Javaweb**后端代码**根据**模板自动生成**;能打印非占位符的**可执行sql**,方便调试;支持生成Json格式的SQL脚本。
* 24.支持**读取Excel**,从Excel导入数据到DB,操作简单。
* 25.流的工具类StreamUtil。
* 26.复杂查询前后端可自动解析。
* 27.注解支持:PrimaryKey,Datetime,Createtime,Updatetime;JustFetch,ReplaceInto(MySQL)。
* 28.可扩展注解:多租户,敏感信息模糊处理,自动设置字段值,Dict字典转化,DictI18n多语言国际化字典转化,Column列名与属性名映射。
## 最新功能介绍:
**V1.11**
V1.11.0.1.1(**2022新年版**)
SuidRich增加方法:
public
批量插入(单位: 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 |
### Bee常用接口介绍
综合应用:
=========
**Java快速编程, 让Java的开发速度超过php和Rails。**
**更快的开发Java Web的新组合:**
[Bee+Spring+SpringMVC](../../../../aiteasoft/bee-spring-springmvc)
**包括仅分库多数据源实例**
[Bee+Spring+SpringMVC开发学校教务管理与分数管理系统](../../../../aiteasoft/schoolsys)
**更快的开发Spring Cloud微服务的新组合:**
[Bee + Spring Boot](../../../bee-springboot)
......
## [FAQ常见问题](../../../bee/blob/master/FAQ_CN.md)
[点击链接可查看 FAQ常见问题](../../../bee/blob/master/FAQ_CN.md)
其它学习资料:
=========
[wiki 文档](../../../bee/wikis)
[CSDN: ORM Bee资料大全](https://blog.csdn.net/abckingaa/article/details/121664398)
联系与欢迎:
=========
#### 作者的电子邮箱email: honeysoft@126.com
#### 如有任何相关建议,欢迎给作者发邮件,不胜感激!
#### 更多设计思想,请关注微信公众号: 软件设计活跃区
#### 为了能及时解答大家的疑问,可以加入Bee的技术QQ群:992650213
#### 同时,也欢迎你加入到Bee框架的开发之中,相信有你的加入,Bee会更加美好!