Bee 2.1 完善的Sharding分片功能, 完善的MongoDB ORM功能。
当前最新版本为:V2.4.2 LTS版(只有940k)
1.7.x LTS版为:1.17.21
Sharding分片:对业务开发透明,编码透明,只加少量分片配置即可实现分片功能.
Bee,一个简单,易用,功能强大(编码少、开发速度快,运行快)的 JAVA ORM 框架。
Bee,互联网新时代的Java ORM框架,更快、更简单、更自动,开发速度快,运行快,更智能!
Bee简单易用:概念简单,10分钟即可入门。
Bee功能强大:运行速度比其它流行ORM工具更快。
Bee功能丰富:支持JDBC/关系型数据库; 支持手机环境ORM:Android和Harmony;支持NoSQL的Cassandra,Mongodb等;支持Sharding分片;支持ElasticSearch查询。
如果说Mybatis在Hibernate之后不是重复造轮子,那Bee在Hibernate和Mybatis之后也不会是重复造轮子!
择其优点,避其缺点,此外,还加有自己的优点!
Bee2.1.8 + Spring boot3.0.8对应版本2.1.8.boot3.0.8 需要JDK17
Bee2.2 + Spring boot3.0.13对应版本2.2.boot3.0.13 需要JDK17
2.5.2.1 新年
1.MySQL
2.Oracle
3.SQL Server
4.MariaDB
5.H2
6.SQLite
7.PostgreSQL
8.MS Access
9.金仓
10.达梦
11.OceanBase
12.Cubrid,HSQL,Derby,Firebird
13.其它支持JDBC的DB
NOSQL:
14.Mongodb
15.ElasticSearch
16.Cassandra
手机环境(的数据库):
17.Android
18.Harmony
测试环境: 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需要的文件
orm\compare\bee\service\BeeOrdersService.java
Mybatis需要的文件(对一个表的操作,就会比Bee多三个dao相关文件)
orm\compare\mybatis\service\MybatisOrdersService.java
orm\compare\mybatis\dao\OrdersDao.java
orm\compare\mybatis\dao\OrdersMapper.java
orm\compare\mybatis\dao\impl\OrdersDaoImpl.java
公共都需要的有,Javabean和Service接口:
Orders.java
OrdersService.java
用Bee无需用户再写Dao代码,一个表少三个Dao文件,100个表就少300个Dao文件.
Bee应用于APP开发性能对比数据
操作1万条数据 ,使用时间对比如下.
操作1w条数据 (单位: ms) |
|||
insert | query | delete | |
greenDao(Android) | 104666 | 600 | 47 |
Bee(Android 8.1) | 747 | 184 | 25 |
Bee(HarmonyOS P40 Pro模拟器) | 339 | 143 | 2 |
<dependency>
<groupId>org.teasoft</groupId>
<artifactId>bee-all</artifactId>
<version>2.4.2</version>
</dependency>
<!-- Mysql config.You need change it to the real database config. -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
Gradle
implementation group: 'org.teasoft', name: 'bee-all', version: '2.4.2'
//Gradle(Short)
implementation 'org.teasoft:bee-all:2.4.2'
举例如下:
创建一个数据库,默认名称为bee.
可以用init-data(user-orders)-mysql.sql脚本创建表和插入初始化数据.
注:如果还没有bee.properties文件,可以自己新建一个.
(默认的bee.properties位于Hoeny工程下,对应HoneyConfig.java,列举了Bee所有会用到的配置)
也可以配置数据源(此处只是一个例子).
#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.url =jdbc:mysql://127.0.0.1:3306/bee?characterEncoding=UTF-8&useSSL=false
bee.db.username = root
bee.db.password =
#输出日志
bee.osql.showSQL=true
bee.osql.showSql.showType=true
bee.osql.showSql.showExecutableSql=true
# since 2.1.7 =true时,可格式化sql
bee.osql.showSql.sqlFormat=false
#log4j>slf4j>log4j2>androidLog>harmonyLog>systemLogger>fileLogger>noLogging>jdkLog>commonsLog
#fileLogger 输出到文件; systemLogger 控制台输出
bee.osql.loggerType=systemLogger
关键代码
List<Orders> list1 =suid.select(orders1); //select
int updateNum=suid.update(orders1); //update
int insertNum=suid.insert(orders2); //insert
int deleteNum=suid.delete(orders2); //delete
详细实例
import java.math.BigDecimal;
import java.util.List;
import org.teasoft.bee.osql.api.Suid;
import org.teasoft.honey.osql.core.BeeFactoryHelper;
/**
* 查,改,增,删 Suid (select,update,insert,delete)实例
* @author Kingstar
* @since 2.1
*/
public class SuidExam {
public static void main(String[] args) {
Suid suid=BeeFactoryHelper.getSuid();
// Suid suid=BF.getSuid();//从1.9.8开始,可以加快输入
//需要先生成相应的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());
}
//在实体里,默认的运行符是等号,除了等号,Bee是用比较符合书写习惯的方法, 可以任意写不同的条件.
//Condition condition=BF.getCondition(); //SuidRich接口有很多带Condition参数的方法
//condition.op(Orders_F.userid, Op.ge, 0); //userid>=0
//Op支持除了"="外的,>,<,>=,<=,!=, like, in, not in 等
//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);
}
}
//注意: 事务,分页,排序,范围查询,查询结果直接返回json等都支持,这里只是一个入门例子.
//更加应用参考,请查看: 更多例子 和 综合应用 .
2.2.boot3.0.13需要JDK17
V2.1
Java快速编程, 让Java的开发速度超过php和Rails。
更快的开发Java Web的新组合:
Bee+Spring+SpringMVC
包括仅分库多数据源实例
Bee+Spring+SpringMVC开发学校教务管理与分数管理系统
更快的开发Spring Cloud微服务的新组合:
Bee + Spring Boot
HarmonyOS使用Bee开发App实例:
Bee + HarmonyOS
自动生成代码GenCode
Generate code automatically
API-V1.17 下载代码含有 bee-1.17中文和英文版API,bee-1.17中文版源码
API-V2.1(最新版) 下载代码含有 bee-2.1英文版API
Bee 网址:
https://github.com/automvc/bee
Bee在gitee 的网址:
https://gitee.com/automvc/bee
bee-ext:
https://github.com/automvc/bee-ext
为了我们能够相互了解,更好的为你服务,你可以到以下地址登录使用情况.
https://github.com/automvc/bee/issues/43
https://gitee.com/automvc/bee/issues/I3PIUJ
完成登记的伙伴,请加QQ群(992650213),可找群主领企业级生产环境建议相关资料!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型