# bee **Repository Path**: jerryww/bee ## Basic Information - **Project Name**: bee - **Description**: Bee是开发速度快、简单、自动高效且具有人工智能(AI)特性的Java ORM框架!它的编码复杂度是O(1),不管操作多少张表,都可以不需要写额外的Dao代码。Bee同时支持面向对象和自定义SQL两种方式,简单场景和复杂场景都可以应用。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/automvc/bee - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 136 - **Created**: 2021-01-18 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Bee ========= #### 工欲善其事必先利其器!——《论语·卫灵公》 **Bee** 是一个简单,易用,功能强大,开发速度快,编码少的 JAVA ORM 框架。 Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;10分钟即可学会使用。 Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化;具有分布式特性。高级要求,还可以方便自定义SQL语句。 **如果说Mybatis在Hibernate之后不是重复造轮子,那Bee在Hibernate和Mybatis之后也不会是重复造轮子!** 择其优点,避其缺点,此外,还加有自己的优点! #### 磨刀不误砍柴工! Bee连磨刀的时间都帮你省了。 **Bee** 是一个具有人工智能(AI)特性,省时/优雅、简易、自动( **AiTea:** Timesaving/Tasteful, Easy, Automatic) 的ORM软件框架(AiTeaSoft)(IT-->AiTea 的思维转变!)。 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主要功能特点介绍: * 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.支持**存储过程**,支持原生SQL(**自定义sql**语句),支持**事务**、**for update**,支持**批处理**操作。 * 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**。 ## 最新功能介绍: **V1.9** SuidRich新增支持List参数的批量插入方法. SuidRich调整selectById方法且String类型参数的id智能识别Javabean的id类型. 完善DB连接管理. 加强代码质量. 修复多表分页查询时,同名字段在部分数据库会混淆的缺陷(oracle). 更新bee.properties文件中batchSize(bee.osql.insert.batchSize). 用模板生成文件支持自定义起止标签. ## [详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) [点击链接可查看 详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) ## ORM比较 [ORM-Compare (More Detail)](../../../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 |
#### 为了能及时解答大家的疑问,可以加入Bee的技术QQ群:992650213
#### 同时,也欢迎你加入到Bee框架的开发之中,相信有你的加入,Bee会更加美好!