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 仅217kV1.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>org.teasoft</groupId><artifactId>bee</artifactId><version>1.9.8</version></dependency><dependency><groupId>org.teasoft</groupId><artifactId>honey</artifactId><version>1.9.8</version></dependency><!--for log framework,Excel(poi) --><dependency><groupId>org.teasoft</groupId><artifactId>bee-ext</artifactId><version>1.9.8</version></dependency>

1.2 也可以直接下载jar文件

2. 创建数据库和表

举例如下:
创建一个数据库,默认名称为bee.
可以用init-data(user-orders)-mysql.sql脚本创建表和插入初始化数据.

3. 更新数据库的配置信息(在bee.properties)

注:如果还没有bee.properties文件,可以自己新建一个.
也可以配置数据源(此处只是一个例子).

//#bee.databaseName=MySQL
bee.db.dbName=MySQL
bee.db.driverName = com.mysql.jdbc.Driver
bee.db.url =jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8
bee.db.username = root
bee.db.password =

4. 生成Javabean Orders可参考:

Orders(Javabean)
Auto Genernate Javabean

5. 运行下面的 java代码

import java.math.BigDecimal;
import java.util.List;import org.teasoft.bee.osql.Suid;
import org.teasoft.honey.osql.core.BeeFactoryHelper;/*** 查,改,增,删 Suid (select,update,insert,delete)实例* @author Kingstar* @since  1.0*/
public class SuidExam {public static void main(String[] args) {Suid suid=BeeFactoryHelper.getSuid();//需要先生成相应的JavabeanOrders orders1=new Orders();orders1.setId(100001L);orders1.setName("Bee(ORM Framework)");//1:select查询实例//默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件List<Orders> list1 =suid.select(orders1);  //selectfor (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);   //updateSystem.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);}
}
//注意: 事务,分页,排序,范围查询,查询结果直接返回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@126.com

如有任何相关建议,欢迎给作者发邮件,不胜感激!

为了能及时解答大家的疑问,可以加入Bee的技术QQ群:992650213

同时,也欢迎你加入到Bee框架的开发之中,相信有你的加入,Bee会更加美好!

长按二维码可关注

        更多重磅文章等着你!

Bee框架,一个十分钟即可学会的ORM框架--Bee相关推荐

  1. 【快速上手系列】五分钟即可学会的easyUI的简单使用教程

    [快速上手系列]五分钟即可学会的easyUI的简单使用教程 一个简单方便的前端框架 引入文件 引入两个css样式和三个js <!--引入easyUI的样式 --> <link hre ...

  2. 十分钟,学会使用js三种方法创建本地json数据文件

    前言 在干业务时,需要得到一份全国省市到街道的区划数据,刚好业务中连接了高德地图,高德地图又提供了区划的api,这下只需要把数据写到json里了.什么!你说你还不会用js创建json文件?没关系,只需 ...

  3. 十分钟轻松学会python-10分钟轻松学会python turtle绘图

    python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle 先说明一下turtl ...

  4. 教你十分钟构建好 SpringBoot + SSM 框架

    来源:Howie_Y https://juejin.im/post/5b53f677f265da0f8f203914 目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵 ...

  5. 十分钟带你了解Vue框架

    Vue 框架诞生于2014年,其作者为中国人--尤雨溪. Vue用于构建交互式的Web界面的库,是一个构建数据驱动的Web界面渐进式框架,该框架遵循CMD规范,并且提供的设计模式为MVVM模式. (M ...

  6. dapperpoco mysql_Dapper一个和petapoco差不多的轻量级ORM框架

    我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dapper,而且被称为th ...

  7. EF 框架的简介、发展历史;ORM框架概念

    一.EF 框架简介 EF 全称是 EntityFramework .   Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. OR ...

  8. java orm框架什么意思_什么是Java orm框架

    什么是Java orm框架 时间:2017-08-23     来源:华清远见JAVA学院 什么是Java ORM框架呢?Object/Relation Mapping,简称ORM,翻译过来就是对象- ...

  9. java orm框架 博客园_自己写ORM框架 DBUtils

    ORM框架想必大家都比较熟知了,即对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同 ...

最新文章

  1. Android 水波纹点击效果(Ripple Effect)
  2. 一朝清明不若鸿蒙什么意思,清明节得名并非源于“气清景明”
  3. 腾讯视频如何删除观看记录
  4. java 不定参数_Java不定参数
  5. EditPlus配置Python环境
  6. 解决OpenCV编译时./bin: error while loading shared libraries: libopencv_highgui.so.3.2: cannot open的问题
  7. linux 挂在windows共享文件夹
  8. android音频格式,适用于iOS和Android的音频格式
  9. 中国智慧建造行业投资前景分析与项目投资建议报告2021-2027年版
  10. iOS13新增SceneDelegate文件适配
  11. opencv图像对比度
  12. 来谈谈O2O线上线下电商解决方案
  13. php实现支付宝扫码付
  14. matplotlib设置坐标轴
  15. (二)ArcGIS JS 加载动态地图服务
  16. iMX8模块Ubuntu移植
  17. java一竖,java 添加一个竖滚动条
  18. 微信公众平台测试号——模板消息发送Demo
  19. 集合论与图论MOOC习题解答
  20. tensorflow玻尔兹曼机_受限玻尔兹曼机(Restricted Boltzmann Machine)

热门文章

  1. Spring——依赖注入(DI)详解
  2. C++综合练习——键盘坏了
  3. 【读书笔记】蒸汽朋克(各个艺术家的评论)
  4. java 致命错误_Java运行时环境检测到致命错误:SIGSEGV(0xb)
  5. 单倍型分析网络图绘制软件 network下载
  6. 搜狐某频道sql多处注入,还有phpinfo()
  7. proteus与keil的安装方法合集
  8. cbv装饰器 中间件 跨站请求伪造
  9. C# 对word 页眉页脚处理注意点
  10. 苹果6手机怎么录屏_苹果手机如何开启录屏功能 苹果手机开启录屏功能方法【详解】...