ORM Bee设计思想与功能思维导图

ORM Bee设计思想与功能思维导图

Bee,互联网新时代的Java ORM框架,支持Sharding;JDBC,Android,HarmonyOS;支持多种关系型数据库,还支持NoSQL的Cassandra,Mongodb等;更快、更简单、更自动,开发速度快,运行快,更智能!

IT->AiTea

AI Tea

Bee 是一个具有人工智能(AI)特性,省时/优雅、简易、自动AiTea: Timesaving/Tasteful, Easy, Automatic) 的ORM软件框架(AiTeaSoft)(IT-->AiTea 的思维转变!)。

Bee最新几个版本(截止2023年)的功能列表如下:

参考: https://github.com/automvc/bee

https://gitee.com/automvc/bee

**V2.2(2024.1.1·LTS版)**  
1.Javabean实体支持继承(配置bee.osql.openEntityCanExtend=true)  
2.增强批量插入与事务的关联  
  2.2之前,调用批量插入在每个批都会提交commit,但在2.2改为只调用一次且在事务中,在批量插入的方法内容不再提交,而由事务控制.  
3.fixed bug:  
  1)Condition使用Op.in时,参数为null时会报异常  
  2)分片批量插入上下文相关的bug  
  3)仅分库时,解决上下文问题  
  4)分片时,主线程的上下文要清除  
  5).InheritableThreadLocal与parallelStream()不兼容的bug,当不是分片模式时,可以用parallelStream(),而分片时则不建议使用parallelStream()  


**V2.1.10(2023.10)**  
1.支持SQL取反运算NOT("!")  
2.支持OceanBase数据库  
3.doBeforeReturn使用finally  
4.多数据源配置,dbs支持多环境覆盖配置  
5.支持在main方法中直接运行可以读取springboot的application.properties连接数据库的bee.db.url等信息  
6.更新dataSource时,清空缓存  
7.fixed bug:有两个配置项(notSupportUnionQuery,executorSize)没有加前缀sharding_  

**V2.1.8(2023·中秋国庆)**  
1.  
1.1 兼容spring boot命令行active选择环境,  
如:java -jar springbootDemo.jar --spring.profiles.active=dev,会觖发bee-dev.properties  
1.2 兼容spring boot数据源配置,如spring.datasource.url  
1.3 不启动应用,直接运行main方法,bee.properties没有配置数据源时,也可以使用application.properties的spring boot单数据源配置  
2.多表关联插入,更新,删除  
3.DateUtil增加判断日期格式,计算年龄  
4.通过Excel创建表,支持更多数据库  
5.提供默认的BeeSimpleDataSource,支持在bee.properties里配置多数据源(不使用spring boot时,也可以),  
不使用Spring boot,单独使用Bee时,DataSourceBuilderFactory 也能自启动。  
6.Javabean支持生成Swagger注解  
7.MongodbObjSQLRichExt完善拦截器及上下文信息管理  
8.Mongodb打印日志,查询所有字段时,默认不显示要查询的字段;可以通过bee.osql.showMongoSelectAllFields配置控制是否显示  
9.GridFs注解支持SELECT查询类型,当查询实体时,可以自动关联查出相应的文件(MongoDB),GridFs文件类型支持byte[]  
10.修复 bug: 
CurrencyArithmetic变量bug,  
CacheSuidStruct表名不区分大小写,  
SQLite AS 语法少了空格,  
多表查询使用函数时,不能填充到对应字段,  


**V2.1.7(2023.07.01)**  
1.增加可运行sql格式化(需要配置:bee.osql.showSql.sqlFormat=true)  
2.二级缓存支持过期时间随机设置, 解决缓存雪崩问题  
3.DdlViaExcel.createTable通过excel里的信息创建数据库表,可只创建部分  
4.支持Spring boot 3.0,动态配置  
5.完善Sharding ThreadPool,可以自定义配置Sharding操作执行线程数的大小  
6.完善Android多线程操作获取SQLiteDatabase的问题  

### **V2.1.6(2023.06.18·父亲节版)**  
1.添加开关closeDefaultParaResultRegistry,控制是否需要默认加载参数类型转换器和查询结果类型转换器  
2.支持JAP新的API包jakarta.persistence.*  
3.批量插入支持配置是否由框架捕获主键等异常catchModifyDuplicateException,默认不捕获  
4.关闭UtilDotDateTypeConvert因少了 HH:mm:ss  
5.fixed bug 更新配置的默认值  
  fixed bug NullPointerException for PreparedSql preparedValue  
  fixed bug for StringUtils  

### **V2.1(2023.05.20版)主要功能**  
1.Suid,SuidRich,MoreTable,PreparedSql,MapSuid等主要的常用的接口移到org.teasoft.bee.osql.api包  
2.更好支持MVC编程和Spring RestFul编程  
3.bee.properties支持配置多数据源(此方式,无需xml或java代码配置)  
4.GenBean支持Lombok注解:@Setter,@Getter,@Data  
5.内置Json工具fastjson实现支持,支持自定义配置使用的Json工具  
6支持更多数据库一行代码生成整个库所有表对应的Javabean  
new GenBean().genAllBeanFile();  
7.广播表批量插入    
8.完善分片Sharding功能  
9.Mongodb ORM功能全面支持  
9.1.支持Mongodb地理信息插入,查询(可分片查询)等  
9.2.GridFs文件各种操作,支持注解    
9.3.可直接执行原生语句(MongodbRawSql)  
9.4.Mongodb面向对象操作打印原生语句日志     
9.5.支持Mongodb事务  
9.6.支持Mongodb创建索引,删除索引    
9.7.mongodb bean定义为插拔组件  
10.更多数据库分页默认支持:MsAccess,Cubrid,HSQL,Derby,Firebird等  

#### [Mongodb ORM(Bee)详细功能列表](MongodbORM-Function-List.md) 

### **V2.0(2023.02·母爱)**  
**使用分库分表像使用单库一样方便;使用MongoDB像使用MySQL一样容易.**  
1.新增分库分表支持:面向对象分片,JDBC分片  
1.1.面向对象分片  
1.2.Suid,SuidRich,查询,更新分片  
1.3.MoreTable多表查询分片  
1.4.批量插入分片  
1.5.MAX,MIN,COUNT,SUM,AVG分片查询分片  
1.6.分页/排序分片  
1.7.分片种类支持:分库分表,仅分库,仅分表  
1.8.分片路由种类支持:一库一表,一库多表,多库多表,全库全表,只指定表,只指定库  
1.9.通过Hint强制指定当次操作的分片路由(指定ds和table)  
1.10.分片的广播表  
1.11.Sharding分片配置支持  
1.12.流式查询,降低查询内存使用(JDBC)  
1.13.分片支持:=,in,between;其中in支持Number,List,Set  
        不参与分片:not in, not between,>=,<=。 
2.新增Mongodb ORM功能支持(使用类似JDBC用法)  
3.新增Mongodb分片功能  
4.新增MS Access支持  

### **V1.17.21(2023.06.18  1.17.x LTS版)**  
同步V2.0,V2.1发现的bug,完善相关问题.  

### **V1.17(2022·中秋)**  
1)完善SqlServer分页  
2)增加Android(安卓)ORM功能  
3)增加HarmonyOS(鸿蒙)ORM功能  
4)命名转换增加种类4(DbUpperAndJavaLower)  

### **V1.11** (**2022·劳动节**)  
1)新增拦截器、多租户,注册器功能  
2)二级缓存扩展支持  
Redis缓存支持  
3)支持自定义TypeHandler,处理查询的ResultSet结果  
  添加转换器SetParaTypeConvert转换PreparedStatement参数的类型  
4)支持Cassandra.  
5)添加Jndi数据源支持  
6)自定义动态SQL标签,@in,@toIsNULL1,@toIsNULL2,<if isNotNull>,<if isNotBlank>.  
动态sql,将list转为像in (1,2,3)的语句,不需要foreach,批量插入也不需要foreach.  
7)配置文件支持多环境差异化配置;  
8)丰富的注解支持.  
  
...
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/333733.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NVIDIA 大模型 RAG 分享笔记

文章目录 大语言模型在垂直领域落地的三个挑战&#xff1a;什么是 RAG以及为什么能解决大预言模型所带来的的这三个问题RAG 不是一项技术而是整体的 Pipeline非参数化 &#xff1a;数据库部分加载到数据库中检索阶段 提升检索效率的技术检索前&#xff1a;对query做处理use que…

redis缓存和本地缓存的应用设计

数据查询顺序 一级缓存&#xff1a;本地缓存 -》二级缓存&#xff1a;redis缓存 -》数据库 本地缓存和分布式缓存 本地缓存&#xff1a;基于jvm, 意思是程序放在哪&#xff0c;数据就存储在哪&#xff0c;不需要网络请求&#xff0c;特别快&#xff0c;但是需要占用jvm的内存…

Redis--Zset使用场景举例(滑动窗口实现限流)

文章目录 前言什么是滑动窗口zset实现滑动窗口小结附录 前言 在Redis–Zset的语法和使用场景举例&#xff08;朋友圈点赞&#xff0c;排行榜&#xff09;一文中&#xff0c;提及了redis数据结构zset的指令语法和一些使用场景&#xff0c;今天我们使用zset来实现滑动窗口限流&a…

Docker 仓库管理

Docker 仓库管理 仓库&#xff08;Repository&#xff09;是集中存放镜像的地方。以下介绍一下 Docker Hub。当然不止 docker hub&#xff0c;只是远程的服务商不一样&#xff0c;操作都是一样的。 Docker Hub 目前 Docker 官方维护了一个公共仓库 Docker Hub。 大部分需求…

Oracle命令大全

文章目录 1. SQL*Plus命令&#xff08;用于连接与管理Oracle数据库&#xff09;2. SQL数据定义语言&#xff08;DDL&#xff09;命令3. SQL数据操作语言&#xff08;DML&#xff09;命令4. PL/SQL程序块5. 系统用户管理6. 数据备份与恢复相关命令1. SQL*Plus命令&#xff08;用…

java-log4j日志冲突解决

一、概述 java日志框架较多&#xff0c;其中主流的slf4j和commons-logging是日志接口&#xff0c;log4j、log4j2和logback是真正的日志实现库。 二、具体库单独使用 2.1 log4j <dependency><groupId>log4j</groupId><artifactId>log4j</artifa…

CentOS stream 9配置网卡

CentOS stream9的网卡和centos 7的配置路径&#xff1a;/etc/sysconfig/network-scripts/ifcfg-ens32不一样。 CentOS stream 9的网卡路径&#xff1a; /etc/NetworkManager/system-connections/ens32.nmconnection 方法一&#xff1a; [connection] idens32 uuid426b60a4-4…

【鸿蒙4.0】详解harmonyos开发语言ArkTS

文章目录 一.什么是ArkTS&#xff1f;1.ArkTS的背景2.了解js&#xff0c;ts&#xff0c;ArkTS的演变js(Javascript)Javascript的简介Javascript的特点 ts(Typescript)ArkTS 二. ArkTS的特点 一.什么是ArkTS&#xff1f; 1.ArkTS的背景 如官方文档所描述&#xff0c;ArkTS是基…

《Linux C编程实战》笔记:Linux信号介绍

信号是一种软件中断&#xff0c;它提供了处理一种异步事件的方法&#xff0c;也是进程惟一的异步通信方式。在Linux系统中&#xff0c;根据POSIX标准扩展的信号机制&#xff0c;不仅可以用来通知某进程发生了什么事&#xff0c;还可以给进程传递数据。 信号的来源 信号的来源…

广东金牌电缆:法大大电子合同助力业务风险管控

广东金牌电缆集团股份有限公司&#xff08;以下简称“广东金牌电缆”&#xff09;成立于2013年&#xff0c;现为广东省电线电缆重点生产企业、广东省守合同重信用单位、国家专精特新小巨人企业、国家高新技术企业&#xff0c;拥有自主商标“夺冠”&#xff0c;“夺冠”商标被评…

一文读懂「Fine-tuning」微调

一、什么是微调&#xff1f; 1. 什么是微调&#xff1f; 微调是指在预训练模型&#xff08;Pre-trained model&#xff09;的基础上&#xff0c;针对特定任务或数据领域&#xff0c;对部分或全部模型参数进行进一步的训练和调整&#xff08;Fine Tune&#xff09;。预训练模型…

File 类的用法和 InputStream, OutputStream 的用法

1.File类的用法 下面就用几个简单的代码案例来熟悉File类里面函数的用法&#xff1a; public class IODemo1 {public static void main(String[] args) throws IOException {File f new File("./test2.txt");//File f new File("C:/User/1/test.txt");S…

redis数据安全(二)数据持久化 RDB

目录 一、RDB快照持久化 原理 二、RDB快照持久化配置&#xff08;redis.conf&#xff09;&#xff1a; 三、触发RDB备份&#xff1a; 1、自动备份&#xff0c;需配置备份规则&#xff1a; 2、手动执行命令备份&#xff08;save | bgsave&#xff09;&#xff1a; 3、flus…

排序:非递归的归并排序

目录 递归与非递归的思想对比&#xff1a; 递归&#xff1a; 非递归&#xff1a; 代码解析&#xff1a; 完整代码&#xff1a; 递归与非递归的思想对比&#xff1a; 递归&#xff1a; 在之前的归并排序&#xff0c;它的核心思想是通过不断的分割&#xff0c;从一个数组变…

JAVA实现向Word模板中插入Base64图片和数据信息

目录 需求一、准备模板文件二、引入Poi-tl、Apache POI依赖三、创建实体类&#xff08;用于保存向Word中写入的数据&#xff09;四、实现Service接口五、Controller层实现 需求 在服务端提前准备好Word模板文件&#xff0c;并在用户请求接口时服务端动态获取图片。数据等信息插…

数据结构图算法

算法就要多练,我在国庆节放假的时间编写了图的算法题,写完让我受益匪浅,希望可以帮助到大家. 文章目录 前言 一、图的数据结构 1.图的邻接表数据结构定义 2.图的邻接矩阵的存储形式 二、邻接表建立图代码 三、邻接表删除边(基本操作考试不考) 四、邻接表删除顶点及销毁整…

【LLM】Prompt微调

Prompt 在机器学习中&#xff0c;Prompt通常指的是一种生成模型的输入方式。生成模型可以接收一个Prompt作为输入&#xff0c;并生成与该输入相对应的输出。Prompt可以是一段文本、一个问题或者一个片段&#xff0c;用于指导生成模型生成相应的响应、续写文本等。 Prompt优化…

.pings勒索病毒的无声侵袭:保护你的数据财产免受.pings的侵害

尊敬的读者&#xff1a; 在数字时代&#xff0c;网络犯罪者不断推陈出新&#xff0c;而.pings勒索病毒则是一种极富威胁的加密型恶意软件。本文将深入探讨.pings勒索病毒的攻击方式&#xff0c;为您提供从数据恢复到全面预防的完整指南&#xff0c;帮助您有效对抗这一威胁。如…

安全帽识别:智能监控新趋势

在现代工业安全领域&#xff0c;安全帽识别技术已成为一项关键的创新。这项技术通过智能监控系统确保工作人员在危险环境中佩戴安全帽&#xff0c;显著提升了工作场所的安全标准。本文将探讨这一技术的工作原理、应用前景及其在现代工业中的重要性。 安全帽识别的工作机制 安全…

【漏洞攻击之文件上传条件竞争】

漏洞攻击之文件上传条件竞争 wzsc_文件上传漏洞现象与分析思路编写攻击脚本和重放措施中国蚁剑拿flag wzsc_文件上传 漏洞现象与分析 只有一个upload前端标签元素&#xff0c;并且上传任意文件都会跳转到upload.php页面&#xff0c;判定是一个apache容器&#xff0c;开始扫描…