From cfd020e8ced6ed1cbde7a143a2c72a3961d848f0 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Thu, 8 Oct 2020 23:46:52 +0800 Subject: [PATCH 01/44] add sharding README --- 2.0-sharding.md | 161 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 2.0-sharding.md diff --git a/2.0-sharding.md b/2.0-sharding.md new file mode 100644 index 0000000..9bedb66 --- /dev/null +++ b/2.0-sharding.md @@ -0,0 +1,161 @@ +读写分离,分库,分表,分库分表, + +在读写分离的情况下,应用需要对读sql/写sql进行区分,读sql走从库,写sql走主库,并考虑主从同步延迟、高可用等一系列问题。 +在分库分表的情况下,应用需要能对sql进行解析、改写、路由、结果集合并等一些操作,以及分布式事务、分布式id生成器等。路由至单节点的SQL,则无需优化改写。 + +为什么要分表,分库? +一旦业务表中的数据量大了,从维护和性能角度来看,无论是任何的 CRUD 操作,对于数据库而言都是一件极其耗费资源的事情。即便设置了索引, 仍然无法掩盖因为数据量过大从而导致的数据库性能下降的事实 ,这个时候就该对数据库进行 水平分区 (sharding,即分库分表 ),将原本一张表维护的海量数据分配给 N 个子表进行存储和维护。 +延缓分表分库? +将业务表、订单表中旧的历史数据移到历史表。其实这就是分表的雏形。 + +类型: +1)只分表: (可以只有一个数据源) (V1.8已实现) + 同库的分表(只分表不分库) + 按月份,按单位建表放数据。 + 将db库中的user表拆分为2个分表,user_0和user_1,这两个表还位于同一个库中。 +2)只分库 (V1.8已实现) + 将db库拆分为db_0和db_1两个库,同时在db_0和db_1库中各自新建一个user表,db_0.user表和db_1.user表中各自只存原来的db.user表中的部分数据。 + (因各库的表,只存原来的一部分数据,涉及到字段分片) + 而以下这种分库,却仍有可能只用单数据源。 + 只分库不分表,但原单点库中的表各自移到不同的库中 + (各分库有原库中的部分表,典型的:将不同业务的表拆分到不同的库中) + 现在流行的微服务就是按业务打包成一个个服务。或一个服务,只用到一个库,还是可以用单数据源。 + +3)复制型分库 (V1.8已实现) + 复制型分库(读写分离,每个库的表都一样) + 每个库中的表数据是一样的(因同步原因,可能最终一致会有延迟)。 + +4)既分库也分表 (计划在V2.0) +将db库拆分为db_0和db_1两个库,db_0中包含user_0、user_1两个分表,db_1中包含user_2、user_3两个分表。 + +目标: +支持数据库分库分表的ORM中间件的作用,是让开发人员可以像操作单库单表那样去操作数据库,屏蔽底层复杂的实现。 + +1.读写分离 (V1.8已实现) +读写分离,每个库都一样(表都一样,只是部署在不同的节点,如ip不一样)。 +从应用的角度来说,需要对读(select、show、explain等)、写(insert、update、delete等)操作进行区分。如果是写操作,就走主库,主库会将数据同步给从库;之后有读操作,就走从库, +从多个slave中选择一个,查询数据。 +1)写操作走主库,从操作走多个读库; +2)如果一个事务中同时包含了读请求(如select)和写请求(如insert),则统一走主库(避免分布式事务问题)。 + 很强的一致性场景时,可以主动要求,进行从库的同步吗? +3)主从同步,由DB本身负责,如Mysql proxy. 应用需要考虑主从同步延迟。 + +解决方法: +通过判断操作类型,切换数据源完成。不涉及sql重写,改写. +数据源,可以设置,有更新时能改动,以便能感知更新(主库切换,从库增减等)。 +一个事务中同时包含了读请求(如select)和写请求(如insert),则统一走主库。比较容易实现,在开启事务时,路由到写库的conn即可。 +同一线程且同一数据库连接内,如有写入操作,以后的读操作均从主库读取,用于保证数据一致性; 怎么知道线程线程结束? 什么时候才能将连接放回连接池。 + +读写分离优点 +避免单点故障。 +负载均衡,读能力水平扩展。通过配置多个slave节点,可以有效的避免过大的访问量对单个库造成的压力。 + +在读写分离的情况下,应用需要对读sql/写sql进行区分,读sql走从库,写sql走主库,并考虑主从同步延迟、高可用等一系列问题。 + + +2.同库的分表 (V1.8已实现) + 按日期分成多个表,按编号分成多个表 + 选写分表键(用于找到相应表的键),如时间id. + 1)事务暂时只支持一个库的(暂时不支持多库分表,避免分布式事务)。 + 2)javabean与表的映射 + 3)sql重写,改写 + update修改分表字段的值时,只会修改值,不会根据修改后的值再对数据进行迁移.这样会产生问题。除非sql不改写,每个库都运行一样的sql,再将结果合并。 + 分表时,表名是不一样的。 + 同时多个表更新,如何回滚? + 打印的sql,是实际执行的sql,连DataSource的名称也打印出来。跟Sharding不一样。DBA,开发人员看到user001就知道是user表,没必要对他们隐藏这些细节. + 路由至单节点的SQL,则无需优化改写。 因此先选定DS,再确定下一步的操作。 + 4) + +3. 总规则: +核心概念: +**分片路由分为字段的分片和表的分片。 +分片算法 +提供对 SQL 语句中的 =, >, <, >=, <=和 BETWEEN AND ,IN 的分片操作支持 +广播表:配置表、参数表等,每个库都可以放一份。 + +可以选择分片,也可以不用它。 +有些表的编号,是通过分片字段计算来的。如user0中的0可以通过某字段求余得来。 +设置默认DS,路由找不到DS时,使用默认那个。 +***DS如何根据规则路由;表如何根据规则解析成正确的表,从而生成正确的sql;根据分片键确定是否要生成多条sql. + + +可能在生成sql时,就按库或表,分好。 + +中间件检测到你的sql脚本是插入、更新、删除的语句,自动选择主数据源;如果是查询语句,则随机选择一个读数据源;开启了事务会根据事务选择数据源。 +因此,数据源,还有类型属性,同一类型的从库是一样的,缓存共用。 + +强制分片路: (参考设计:仅在当前线程内生效) +Apache ShardingSphere 使用 ThreadLocal 管理分片键值。可以通过编程的方式向 HintManager 中添加分片条件,该分片条件仅在当前线程内生效。 +除了通过编程的方式使用强制分片路由,Apache ShardingSphere 还计划通过 SQL 中的特殊注释的方式引用 Hint,使开发者可以采用更加透明的方式使用该功能。 +指定了强制分片路由的 SQL 将会无视原有的分片逻辑,直接路由至指定的真实数据节点。 + + +4.高可用: +配置信息动态生效 +在注册中心上修改、删除、新增相关配置,会动态推送到生产环境并立即生效。 +参考:永久且同步配置。 + + +5.分库不分表 (V1.8已实现) +读写分离算是一种典型的分库不分表。因为每个库的表是一样. +一般的有如,将不同业务的表拆分到不同的库中,可根据表来路由。 + +6.分库分表 +暂不支持。 +(计划在V2.0) +为什么? +原因如下: +跨库事务也是分布式的数据库集群要面对的棘手事情。 合理采用分表,可以在降低单表数据量的情况下,尽量使用本地事务,善于使用同库不同表可有效避免分布式事务带来的麻烦。 +在不能避免跨库事务的场景,有些业务仍然需要保持事务的一致性。 而基于XA的分布式事务由于在并发度高的场景中性能无法满足需要,并未被互联网巨头大规模使用,他们大多采用 +最终一致性的柔性事务代替强一致事务。 + +从应用的角度来说,需要对读(select、show、explain等)、写(insert、update、delete等)操作进行区分。如果是写操作,就走主库,主库会将数据同步给从库;之后有读操作,就走从库, +从多个slave中选择一个,查询数据。 +事务问题。如果一个事务中同时包含了读请求(如select)和写请求(如insert),如果读请求走从库,写请求走主库,由于跨了多个库,那么jdbc本地事务已经无法控制,属于分布式事务的范畴。而分布式事务非常复杂且效率较低。因此对于读写分离, +目前主流的做法是,事务中的所有sql统一都走主库,由于只涉及到一个库,jdbc本地事务就可以搞定。 + +补列 +排序分页,要改写sql + +正确性改写 +标识符改写 +补列 +分页修正 +批量拆分 +优化改写 +单节点优化 +流式归并优化 + +用S-uid的好处, + +mysql: +分页方案优化 +由于LIMIT并不能通过索引查询数据,因此如果可以保证ID的连续性,通过ID进行分页是比较好的解决方案: + +SELECT * FROM t_order WHERE id > 100000 AND id <= 100010 ORDER BY id +或通过记录上次查询结果的最后一条记录的ID进行下一页的查询: +SELECT * FROM t_order WHERE id > 100000 LIMIT 10 +sql输出,提示是经过优化的sql.用不带分页的部分sql为key,缓存上一次查询的id. + +4.3 分库分表的Join +一般情况下,分库分表后,就不能再和单表一样进行Join了,目前zebra支持以下两种情况的Join。 + +4.3.1 小表广播 +适用在一些配置表,或者一般不怎么变更的小表上,然后分表需要和这个小表进行Join。对于小表需要在每个分库上复制一个,所有对这张表的Join就会变成单库Join了。另外,对于这张表的任何变更,zebra后端会使用binlog的方式自动同步到每一个分库上去。所以这种方式叫做小表广播。 +注意:小表广播需要自行配置同步服务! + +4.3.2 Binding Table +适用在若干个分表上进行Join,前提是这些分表的分表逻辑都是一样的,意味着所有的Join都可以在同一个数据库上进行。 +比如:表a和表b同时都要分表,而且都是使用UserID进行分表,分表的个数和分库的个数都是一样的。 + +分库分表优点 +分库的好处: 降低单台机器的负载压力,提升写入性能 + +分表的好处: 提高数据操作的效率。举个例子说明,比如user表中现在有4000w条数据,此时我们需要在这个表中增加(insert)一条新的数据,insert完毕后,数据库会针对这张表重新建立索引,4000w行数据建立索引的系统开销还是不容忽视的。 +但是反过来,假如我们将这个表分成4 个table呢,从user_0一直到user_3,4000w行数据平均下来,每个子表里边就只有1000W行数据,这时候我们向一张 只有1000W行数据的table中insert数据后建立索引的时间就会下降,从而提高DB的运行时效率, +提高了DB的并发量。除了提高写的效率,更重要的是提高读的效率,提高查询的性能。当然分表的好处还不止这些,还有诸如写操作的锁操作等,都会带来很多显然的好处。 + +注意:无论选择什么拆分键,采用何种拆分策略,都要注意拆分值是否存在热点的问题,尽量规避热点数据来选择拆分键。 +注意:不一定需要拿数据库主键当做分表键,也可以拿其他业务值当分表键。拿主键当分表键的好处是可以散列均衡,减少热点问题。 + + -- Gitee From 214fe5dd37989f7ed605225da3aa92c926472289 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 10 Oct 2020 22:19:02 +0800 Subject: [PATCH 02/44] update for v1.8.15(3Festivals) --- README_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_CN.md b/README_CN.md index c2bf303..6a4f2f8 100644 --- a/README_CN.md +++ b/README_CN.md @@ -40,7 +40,7 @@ jdk1.7+ * 16.支持**读写分离**一主多从, 仅**分库**等**多数据源**模式。 * 17.**分布式**环境下生成**连续单调递增**(在一个workerid内),**全局唯一**数字**id**;提供自然简单的分布式主键生成方式。 * 18.**支持同库分表,动态表名映射**。 -* 19.**性能好:接近JDBC的速度;文件小:Bee V1.8 jar 仅217k。**。 +* 19.**性能好:接近JDBC的速度;文件小:Bee V1.8 jar 仅217k**。 ## 最新功能介绍: -- Gitee From 47a062996be846837758cfcf0d68f4e1904e06d7 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 10 Oct 2020 22:19:12 +0800 Subject: [PATCH 03/44] update for v1.8.15(3Festivals) --- README.md | 86 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 8d1b603..5a5db50 100644 --- a/README.md +++ b/README.md @@ -271,58 +271,64 @@ bee.db.password = import java.math.BigDecimal; import java.util.List; +import org.teasoft.bee.osql.BeeException; import org.teasoft.bee.osql.Suid; import org.teasoft.honey.osql.core.BeeFactory; +import org.teasoft.honey.osql.core.Logger; /** * @author Kingstar - * @since 1.0 + * @since 1.0 */ -public class SuidExam { - +public class SuidExamEN { + public static void main(String[] args) { - Suid suid=BeeFactory.getHoneyFactory().getSuid(); - - //需要先生成相应的Javabean - Orders orders1=new Orders(); //need define the Javabean - orders1.setId(100001L); - orders1.setName("Bee(ORM Framework)"); - - //默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件 - List list1 =suid.select(orders1); //select - for (int i = 0; i < list1.size(); i++) { - System.out.println(list1.get(i).toString()); - } - - 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 - - //默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动插入数据库中. - //方便结合DB插值,如id自动增长,由DB插入;createtime由DB默认插入 - int insertNum=suid.insert(orders2); //insert - System.out.println("insert record:"+insertNum); - - //默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件 -// int deleteNum=suid.delete(orders2); //delete -// System.out.println("delete record:"+deleteNum); - - List list2 =suid.select(orders1); //select confirm the data - for (int i = 0; i < list2.size(); i++) { - System.out.println(list2.get(i).toString()); + try { + Suid suid = BeeFactory.getHoneyFactory().getSuid(); + + Orders orders1 = new Orders();//need gen the Javabean + orders1.setId(100001L); + orders1.setName("Bee(ORM Framework)"); + + List list1 = suid.select(orders1); // select + for (int i = 0; i < list1.size(); i++) { + Logger.info(list1.get(i).toString()); + } + + orders1.setName("Bee(ORM Framework)"); + int updateNum = suid.update(orders1); // update + Logger.info("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 + + int insertNum = suid.insert(orders2); // insert + Logger.info("insert record:" + insertNum); + + int deleteNum = suid.delete(orders2); // delete + Logger.info("delete record:" + deleteNum); + + List list2 = suid.select(orders1); // select confirm the data + for (int i = 0; i < list2.size(); i++) { + Logger.info(list2.get(i).toString()); + } + + } catch (BeeException e) { + Logger.error("In SuidExamEN (BeeException):" + e.getMessage()); + e.printStackTrace(); + } catch (Exception e) { + Logger.error("In SuidExamEN (Exception):" + e.getMessage()); + e.printStackTrace(); } } } -//注意: 事务,分页,排序,范围查询,查询结果直接返回json等都支持,这里只是一个入门例子. +// notice: this is just a simple sample. Bee suport transaction,paging,complicate select,slect json,and so on. + ``` #### [More example/test case](../../../bee-exam/) -- Gitee From f084f13bf2893b2c0d98ff31b4eb993b7a3df226 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 11 Oct 2020 22:26:16 +0800 Subject: [PATCH 04/44] update --- README.md | 2 +- README_CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5a5db50..3128be1 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,7 @@ Quick Start: org.teasoft bee-ext - 1.8.15 + 1.8 ``` diff --git a/README_CN.md b/README_CN.md index 6a4f2f8..fa9fc10 100644 --- a/README_CN.md +++ b/README_CN.md @@ -242,7 +242,7 @@ OrdersService.java org.teasoft bee-ext - 1.8.15 + 1.8 ``` -- Gitee From ad8d3b3ed637c87f02d26751efeae0fc07a6966d Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 18:07:23 +0800 Subject: [PATCH 05/44] update for v1.8.99 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f4b93c5..184fa25 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.teasoft bee - 1.8.15 + 1.8.99-SNAPSHOT jar -- Gitee From 0d4500ca02be0159c0bb4001482d3b76bc19910e Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 18:09:03 +0800 Subject: [PATCH 06/44] add md5 for cache key and sql support case option --- .../java/org/teasoft/bee/osql/LowerKey.java | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 src/main/java/org/teasoft/bee/osql/LowerKey.java diff --git a/src/main/java/org/teasoft/bee/osql/LowerKey.java b/src/main/java/org/teasoft/bee/osql/LowerKey.java new file mode 100644 index 0000000..12339cd --- /dev/null +++ b/src/main/java/org/teasoft/bee/osql/LowerKey.java @@ -0,0 +1,166 @@ +/* + * Copyright 2013-2019 the original author.All rights reserved. + * Kingstar(honeysoft@126.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.teasoft.bee.osql; + +/** + * @author Kingstar + * @since 1.8.99 + */ +public class LowerKey implements SqlKeyWord{ + + public static String SPACE=" ", + select="select", + from="from", + where="where", + insert="insert", + into="into", + values="values", + and="and", + or="or", + Null="null", + isNull="is null", + isNotNull="is not null", + update="update", + set="set", + delete="delete", + orderBy="order by", + count="count", + asc="asc", + on="on", + forUpdate="forUpdate", + limit="limit", + offset="offset", + top="top" + ; + + @Override + public String select() { + return select; + } + + @Override + public String from() { + return from; + } + + @Override + public String where() { + return where; + } + + @Override + public String insert() { + return insert; + } + + @Override + public String into() { + return into; + } + + @Override + public String values() { + return values; + } + + @Override + public String and() { + return and; + } + + @Override + public String or() { + return or; + } + + @Override + public String Null() { + return Null; + } + + @Override + public String isNull() { + return isNull; + } + + @Override + public String isNotNull() { + return isNotNull; + } + + @Override + public String space() { + return SPACE; + } + + @Override + public String update() { + return update; + } + + @Override + public String set() { + return set; + } + + @Override + public String delete() { + return delete; + } + + @Override + public String orderBy() { + return orderBy; + } + + @Override + public String count() { + return count; + } + + @Override + public String asc() { + return asc; + } + + @Override + public String on() { + return on; + } + + @Override + public String forUpdate() { + return forUpdate; + } + + @Override + public String limit() { + return limit; + } + + @Override + public String offset() { + return offset; + } + + @Override + public String top() { + return top; + } + +} -- Gitee From 85aa79ac7d984effa6bf241ec2eb0fa3d1f1e676 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 18:09:26 +0800 Subject: [PATCH 07/44] add md5 for cache key and sql support case option --- .../java/org/teasoft/bee/osql/SqlKeyWord.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/org/teasoft/bee/osql/SqlKeyWord.java diff --git a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java new file mode 100644 index 0000000..2b14a99 --- /dev/null +++ b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java @@ -0,0 +1,58 @@ +/* + * Copyright 2013-2019 the original author.All rights reserved. + * Kingstar(honeysoft@126.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.teasoft.bee.osql; + +/** + * @author Kingstar + * @since 1.8.99 + */ +public interface SqlKeyWord { + + String select(); + String from(); + String where(); + + String insert(); + String into(); + String values(); + String and(); + String or(); + String Null(); + String isNull(); + String isNotNull(); + + String update(); + String set(); + String delete(); + + String orderBy(); + String count(); + String asc(); + + String on(); + String forUpdate(); + String limit(); + String offset(); + String top(); + + String space(); + + + + +} -- Gitee From 9c613cd3ff8b7292812839e0d538a98953a14814 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 18:09:50 +0800 Subject: [PATCH 08/44] add md5 for cache key and sql support case option --- .../java/org/teasoft/bee/osql/UpperKey.java | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 src/main/java/org/teasoft/bee/osql/UpperKey.java diff --git a/src/main/java/org/teasoft/bee/osql/UpperKey.java b/src/main/java/org/teasoft/bee/osql/UpperKey.java new file mode 100644 index 0000000..97e4802 --- /dev/null +++ b/src/main/java/org/teasoft/bee/osql/UpperKey.java @@ -0,0 +1,166 @@ +/* + * Copyright 2013-2019 the original author.All rights reserved. + * Kingstar(honeysoft@126.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.teasoft.bee.osql; + +/** + * @author Kingstar + * @since 1.8.99 + */ +public class UpperKey implements SqlKeyWord{ + + public static String SPACE=" ", + select="SELECT", + from="FROM", + where="WHERE", + insert="INSERT", + into="INTO", + values="VALUES", + and="AND", + or="OR", + Null="NULL", + isNull="IS NULL", + isNotNull="IS NOT NULL", + update="UPDATE", + set="SET", + delete="DELETE", + orderBy="ORDER BY", + count="COUNT", + asc="ASC", + on="ON", + forUpdate="FORUPDATE", + limit="LIMIT", + offset="OFFSET", + top="TOP" + ; + + @Override + public String select() { + return select; + } + + @Override + public String from() { + return from; + } + + @Override + public String where() { + return where; + } + + @Override + public String insert() { + return insert; + } + + @Override + public String into() { + return into; + } + + @Override + public String values() { + return values; + } + + @Override + public String and() { + return and; + } + + @Override + public String or() { + return or; + } + + @Override + public String Null() { + return Null; + } + + @Override + public String isNull() { + return isNull; + } + + @Override + public String isNotNull() { + return isNotNull; + } + + @Override + public String space() { + return SPACE; + } + + @Override + public String update() { + return update; + } + + @Override + public String set() { + return set; + } + + @Override + public String delete() { + return delete; + } + + @Override + public String orderBy() { + return orderBy; + } + + @Override + public String count() { + return count; + } + + @Override + public String asc() { + return asc; + } + + @Override + public String on() { + return on; + } + + @Override + public String forUpdate() { + return forUpdate; + } + + @Override + public String limit() { + return limit; + } + + @Override + public String offset() { + return offset; + } + + @Override + public String top() { + return top; + } + +} -- Gitee From 1ba666356d5d4badff5f9b13081dd3ec4b08c420 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 21:51:58 +0800 Subject: [PATCH 09/44] Support lower and upper case option for SQL KeyWord --- .../java/org/teasoft/bee/osql/LowerKey.java | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/teasoft/bee/osql/LowerKey.java b/src/main/java/org/teasoft/bee/osql/LowerKey.java index 12339cd..3f48d7a 100644 --- a/src/main/java/org/teasoft/bee/osql/LowerKey.java +++ b/src/main/java/org/teasoft/bee/osql/LowerKey.java @@ -42,11 +42,16 @@ public class LowerKey implements SqlKeyWord{ count="count", asc="asc", on="on", - forUpdate="forUpdate", limit="limit", offset="offset", - top="top" - ; + top="top", + + groupBy="group by", + having="having", + between="between", + notBetween="not between", + + forUpdate="for update"; @Override public String select() { @@ -163,4 +168,24 @@ public class LowerKey implements SqlKeyWord{ return top; } + @Override + public String groupBy() { + return groupBy; + } + + @Override + public String having() { + return having; + } + + @Override + public String between() { + return between; + } + + @Override + public String notBetween() { + return notBetween; + } + } -- Gitee From 20ea4fc1915783938d6617511d8f962db9682ea4 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 21:52:13 +0800 Subject: [PATCH 10/44] Support lower and upper case option for SQL KeyWord --- src/main/java/org/teasoft/bee/osql/SqlKeyWord.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java index 2b14a99..6d154ce 100644 --- a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java +++ b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java @@ -50,9 +50,11 @@ public interface SqlKeyWord { String offset(); String top(); - String space(); - - + String groupBy(); + String having(); + String between(); + String notBetween(); + String space(); } -- Gitee From bbc2df1dc371f8674ad93efc97b0d8382cf678c7 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 21:52:25 +0800 Subject: [PATCH 11/44] Support lower and upper case option for SQL KeyWord --- .../java/org/teasoft/bee/osql/UpperKey.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/teasoft/bee/osql/UpperKey.java b/src/main/java/org/teasoft/bee/osql/UpperKey.java index 97e4802..afadd96 100644 --- a/src/main/java/org/teasoft/bee/osql/UpperKey.java +++ b/src/main/java/org/teasoft/bee/osql/UpperKey.java @@ -42,12 +42,19 @@ public class UpperKey implements SqlKeyWord{ count="COUNT", asc="ASC", on="ON", - forUpdate="FORUPDATE", + limit="LIMIT", offset="OFFSET", - top="TOP" - ; + top="TOP", + + groupBy="GROUP BY", + having="HAVING", + between="BETWEEN", + notBetween="NOT BETWEEN", + + forUpdate="FOR UPDATE" ; + @Override public String select() { return select; @@ -163,4 +170,24 @@ public class UpperKey implements SqlKeyWord{ return top; } + @Override + public String groupBy() { + return groupBy; + } + + @Override + public String having() { + return having; + } + + @Override + public String between() { + return between; + } + + @Override + public String notBetween() { + return notBetween; + } + } -- Gitee From 24cfa8a8257afc69211ed091e5dfabcf89c1f374 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 21:52:31 +0800 Subject: [PATCH 12/44] Support lower and upper case option for SQL KeyWord --- src/test/java/org/teasoft/bee/BeeExam.java | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/test/java/org/teasoft/bee/BeeExam.java b/src/test/java/org/teasoft/bee/BeeExam.java index 912f600..4175455 100644 --- a/src/test/java/org/teasoft/bee/BeeExam.java +++ b/src/test/java/org/teasoft/bee/BeeExam.java @@ -34,17 +34,21 @@ public class BeeExam { // bee-exam last update time:2020-08-22 22:14 (yyyy-MM-dd HH:mm) // add H2,SQLite Support: -// bee-exam(v1.8.6)-normal(H2)-2020-09-20 21.37.23.126.txt -// bee-exam(v1.8.6)-normal(MySQL)-2020-09-20 18.28.31.764.txt -// bee-exam(v1.8.6)-normal(SQLite)-2020-09-20 19.43.53.751.txt +// bee-exam(v1.8.15)-normal(H2)-2020-09-20 21.37.23.126.txt +// bee-exam(v1.8.15)-normal(MySQL)-2020-09-20 18.28.31.764.txt +// bee-exam(v1.8.15)-normal(SQLite)-2020-09-20 19.43.53.751.txt // add PostgreSQL Support: -// bee-exam(v1.8.6)-normal(H2)-2020-10-01 17.50.37.507.txt -// bee-exam(v1.8.6)-normal(MySQL)-2020-10-01 16.43.57.577.txt -// bee-exam(v1.8.6)-normal(PostgreSQL)-2020-10-01 14.12.13.668-autoGenId.txt -// bee-exam(v1.8.6)-normal(PostgreSQL)-2020-10-01 15.59.45.647.txt -// bee-exam(v1.8.6)-normal(SQLite)-2020-10-01 19.16.47.115-autoGenId.txt -// bee-exam(v1.8.6)-normal(SQLite)-2020-10-01 19.19.10.831.txt +// bee-exam(v1.8.15)-normal(H2)-2020-10-01 17.50.37.507.txt +// bee-exam(v1.8.15)-normal(MySQL)-2020-10-01 16.43.57.577.txt +// bee-exam(v1.8.15)-normal(PostgreSQL)-2020-10-01 14.12.13.668-autoGenId.txt +// bee-exam(v1.8.15)-normal(PostgreSQL)-2020-10-01 15.59.45.647.txt +// bee-exam(v1.8.15)-normal(SQLite)-2020-10-01 19.16.47.115-autoGenId.txt +// bee-exam(v1.8.15)-normal(SQLite)-2020-10-01 19.19.10.831.txt + +// Support lower and upper case option for SQL KeyWord: +// bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.41.40.37.txt +// bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.42.02.730-UPPER.txt // 测试用例请查看工程:bee-exam // 以下任意一个地址: -- Gitee From 085d3593a50904932252e4ba8f6069b24a5d76f7 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 21:52:45 +0800 Subject: [PATCH 13/44] Support lower and upper case option for SQL KeyWord --- src/test/java/org/teasoft/bee/change-log.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/test/java/org/teasoft/bee/change-log.txt b/src/test/java/org/teasoft/bee/change-log.txt index 6a1e9c3..f59f80d 100644 --- a/src/test/java/org/teasoft/bee/change-log.txt +++ b/src/test/java/org/teasoft/bee/change-log.txt @@ -60,3 +60,7 @@ bee-exam(v1.8.15)-normal(PostgreSQL)-2020-10-01 14.12.13.668-autoGenId.txt bee-exam(v1.8.15)-normal(PostgreSQL)-2020-10-01 15.59.45.647.txt bee-exam(v1.8.15)-normal(SQLite)-2020-10-01 19.16.47.115-autoGenId.txt bee-exam(v1.8.15)-normal(SQLite)-2020-10-01 19.19.10.831.txt + +Support lower and upper case option for SQL KeyWord: +bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.41.40.37.txt +bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.42.02.730-UPPER.txt -- Gitee From 6e72a318d5e2f0fa14b54f774fc219682621cbff Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 17 Oct 2020 21:53:09 +0800 Subject: [PATCH 14/44] v1.8.99 1.Support lower and upper case option for SQL KeyWord. 2.Cache sql key support MD5 string. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 3128be1..f3746f4 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,10 @@ fixed null bug about:PreparedSql's method select(String sql,Object preValues[]). 5.Enhance Log function. 6.Fixed json transform bug. +**v1.8.99**(2020-10) +1.Support lower and upper case option for SQL KeyWord. +2.Cache sql key support MD5 string. + ## [Function Detail](../../../bee/blob/master/Changed_Log.md) [click for: Function Detail](../../../bee/blob/master/Changed_Log.md) -- Gitee From f656590cda4c324cf8877973aaa30b7f99fc30f8 Mon Sep 17 00:00:00 2001 From: distributed-orm <616329789@qq.com> Date: Sat, 17 Oct 2020 22:49:12 +0800 Subject: [PATCH 15/44] update src/main/java/org/teasoft/bee/osql/UpperKey.java. --- src/main/java/org/teasoft/bee/osql/UpperKey.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/teasoft/bee/osql/UpperKey.java b/src/main/java/org/teasoft/bee/osql/UpperKey.java index afadd96..46168ba 100644 --- a/src/main/java/org/teasoft/bee/osql/UpperKey.java +++ b/src/main/java/org/teasoft/bee/osql/UpperKey.java @@ -18,6 +18,7 @@ package org.teasoft.bee.osql; /** + * SQL关键字的大写形式.SQL KeyWord upper case. * @author Kingstar * @since 1.8.99 */ -- Gitee From fc8891a4f0a18c6278a943ef9cc21ee4120c53bd Mon Sep 17 00:00:00 2001 From: distributed-orm <616329789@qq.com> Date: Sat, 17 Oct 2020 22:50:35 +0800 Subject: [PATCH 16/44] update src/main/java/org/teasoft/bee/osql/SqlKeyWord.java. --- src/main/java/org/teasoft/bee/osql/SqlKeyWord.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java index 6d154ce..bdddfa0 100644 --- a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java +++ b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java @@ -18,6 +18,7 @@ package org.teasoft.bee.osql; /** + * SQL关键字.SQL KeyWord. * @author Kingstar * @since 1.8.99 */ -- Gitee From 2bbf8a17373e14fc8389ff82b9e3807f8e0031ea Mon Sep 17 00:00:00 2001 From: distributed-orm <616329789@qq.com> Date: Sat, 17 Oct 2020 22:52:50 +0800 Subject: [PATCH 17/44] update src/main/java/org/teasoft/bee/osql/LowerKey.java. --- src/main/java/org/teasoft/bee/osql/LowerKey.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/teasoft/bee/osql/LowerKey.java b/src/main/java/org/teasoft/bee/osql/LowerKey.java index 3f48d7a..b589442 100644 --- a/src/main/java/org/teasoft/bee/osql/LowerKey.java +++ b/src/main/java/org/teasoft/bee/osql/LowerKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2019 the original author.All rights reserved. + * Copyright 2013-2020 the original author.All rights reserved. * Kingstar(honeysoft@126.com) * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,6 +18,7 @@ package org.teasoft.bee.osql; /** + * SQL关键字的小写形式.SQL KeyWord's lower case. * @author Kingstar * @since 1.8.99 */ -- Gitee From 3691a812bd77605371cf0d6f732009bae8ae0351 Mon Sep 17 00:00:00 2001 From: distributed-orm <616329789@qq.com> Date: Sat, 17 Oct 2020 22:53:32 +0800 Subject: [PATCH 18/44] update src/main/java/org/teasoft/bee/osql/UpperKey.java. --- src/main/java/org/teasoft/bee/osql/UpperKey.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/teasoft/bee/osql/UpperKey.java b/src/main/java/org/teasoft/bee/osql/UpperKey.java index 46168ba..8f0005e 100644 --- a/src/main/java/org/teasoft/bee/osql/UpperKey.java +++ b/src/main/java/org/teasoft/bee/osql/UpperKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2019 the original author.All rights reserved. + * Copyright 2013-2020 the original author.All rights reserved. * Kingstar(honeysoft@126.com) * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,7 +18,7 @@ package org.teasoft.bee.osql; /** - * SQL关键字的大写形式.SQL KeyWord upper case. + * SQL关键字的大写形式.SQL KeyWord's upper case. * @author Kingstar * @since 1.8.99 */ -- Gitee From 96f2e30a04db3e8242b8d21fcf3af7e5cde7603f Mon Sep 17 00:00:00 2001 From: distributed-orm <616329789@qq.com> Date: Sat, 17 Oct 2020 22:54:35 +0800 Subject: [PATCH 19/44] update src/main/java/org/teasoft/bee/osql/SqlKeyWord.java. --- src/main/java/org/teasoft/bee/osql/SqlKeyWord.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java index bdddfa0..ca9bf69 100644 --- a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java +++ b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2019 the original author.All rights reserved. + * Copyright 2013-2020 the original author.All rights reserved. * Kingstar(honeysoft@126.com) * * Licensed under the Apache License, Version 2.0 (the "License"); -- Gitee From ab2c5269b268014f1bf35a6a0770078efc3593a6 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 18 Oct 2020 10:44:19 +0800 Subject: [PATCH 20/44] =?UTF-8?q?v1.8.99=20=20=201.SQL=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=AD=97=E6=94=AF=E6=8C=81=E5=8F=AF=E9=85=8D=E7=BD=AE=E5=A4=A7?= =?UTF-8?q?=E5=86=99=E6=88=96=E5=B0=8F=E5=86=99=E8=BE=93=E5=87=BA.=20=202.?= =?UTF-8?q?SQL=E7=BC=93=E5=AD=98key=E5=8F=AF=E7=94=A8MD5=E5=AD=97=E7=AC=A6?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README_CN.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README_CN.md b/README_CN.md index fa9fc10..14f1623 100644 --- a/README_CN.md +++ b/README_CN.md @@ -89,6 +89,10 @@ PreparedSql添加三个新方法 5.完善日志Log功能. 6.修复json转换bug. +**v1.8.99**(2020-10) +1.SQL关键字支持可配置大写或小写输出. +2.SQL缓存key可用MD5字符. + ## [详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) [点击链接可查看 详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) -- Gitee From 477d95e16f31beb45005c066f103d7d70ca406ea Mon Sep 17 00:00:00 2001 From: AiTeaSoft Date: Sun, 18 Oct 2020 11:09:45 +0800 Subject: [PATCH 21/44] update code formatter --- src/main/java/org/teasoft/bee/osql/LowerKey.java | 2 +- src/main/java/org/teasoft/bee/osql/ObjToSQL.java | 2 +- src/main/java/org/teasoft/bee/osql/ObjToSQLRich.java | 2 +- src/main/java/org/teasoft/bee/osql/UpperKey.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/teasoft/bee/osql/LowerKey.java b/src/main/java/org/teasoft/bee/osql/LowerKey.java index b589442..3e46345 100644 --- a/src/main/java/org/teasoft/bee/osql/LowerKey.java +++ b/src/main/java/org/teasoft/bee/osql/LowerKey.java @@ -22,7 +22,7 @@ package org.teasoft.bee.osql; * @author Kingstar * @since 1.8.99 */ -public class LowerKey implements SqlKeyWord{ +public class LowerKey implements SqlKeyWord { public static String SPACE=" ", select="select", diff --git a/src/main/java/org/teasoft/bee/osql/ObjToSQL.java b/src/main/java/org/teasoft/bee/osql/ObjToSQL.java index d85924f..908ba08 100644 --- a/src/main/java/org/teasoft/bee/osql/ObjToSQL.java +++ b/src/main/java/org/teasoft/bee/osql/ObjToSQL.java @@ -26,7 +26,7 @@ package org.teasoft.bee.osql; * @author Kingstar * @since 1.0 */ -public interface ObjToSQL{ +public interface ObjToSQL { public String toSelectSQL(T entity) ; // public String toUpdateSQL(T entity) throws ObjSQLException; diff --git a/src/main/java/org/teasoft/bee/osql/ObjToSQLRich.java b/src/main/java/org/teasoft/bee/osql/ObjToSQLRich.java index 2e6fec2..fd82fb5 100644 --- a/src/main/java/org/teasoft/bee/osql/ObjToSQLRich.java +++ b/src/main/java/org/teasoft/bee/osql/ObjToSQLRich.java @@ -23,7 +23,7 @@ package org.teasoft.bee.osql; * @author Kingstar * @since 1.0 */ -public interface ObjToSQLRich extends ObjToSQL{ +public interface ObjToSQLRich extends ObjToSQL { public String toSelectSQL(T entity,int size); public String toSelectSQL(T entity,int start,int size); diff --git a/src/main/java/org/teasoft/bee/osql/UpperKey.java b/src/main/java/org/teasoft/bee/osql/UpperKey.java index 8f0005e..09aabac 100644 --- a/src/main/java/org/teasoft/bee/osql/UpperKey.java +++ b/src/main/java/org/teasoft/bee/osql/UpperKey.java @@ -22,7 +22,7 @@ package org.teasoft.bee.osql; * @author Kingstar * @since 1.8.99 */ -public class UpperKey implements SqlKeyWord{ +public class UpperKey implements SqlKeyWord { public static String SPACE=" ", select="SELECT", -- Gitee From 66035a1a85506fa74a648fe671a47ecf55be116b Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 24 Oct 2020 13:08:32 +0800 Subject: [PATCH 22/44] =?UTF-8?q?v1.8.99(2020-10-25=20=E9=87=8D=E9=98=B3?= =?UTF-8?q?=E8=8A=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README_CN.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README_CN.md b/README_CN.md index 14f1623..f433f38 100644 --- a/README_CN.md +++ b/README_CN.md @@ -89,9 +89,11 @@ PreparedSql添加三个新方法 5.完善日志Log功能. 6.修复json转换bug. -**v1.8.99**(2020-10) +**v1.8.99**(2020-10-25 重阳节) 1.SQL关键字支持可配置大写或小写输出. 2.SQL缓存key可用MD5字符. +3.优化利用HoneyConfig设置DB信息的方式. +4.修复关于checkSelectField的bug. ## [详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) [点击链接可查看 详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) -- Gitee From 79dd743ad60a51b515d2fa125ca614b3a8cfef88 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 24 Oct 2020 13:09:08 +0800 Subject: [PATCH 23/44] v1.8.99(2020-10-25 Double Ninth Festival) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f3746f4..7e4d9ae 100644 --- a/README.md +++ b/README.md @@ -88,9 +88,11 @@ fixed null bug about:PreparedSql's method select(String sql,Object preValues[]). 5.Enhance Log function. 6.Fixed json transform bug. -**v1.8.99**(2020-10) +**v1.8.99**(2020-10-25 Double Ninth Festival) 1.Support lower and upper case option for SQL KeyWord. 2.Cache sql key support MD5 string. +3.Optimize the way of setting DB information with Honeyconfig. +4.Fix bug about checkSelectField. ## [Function Detail](../../../bee/blob/master/Changed_Log.md) [click for: Function Detail](../../../bee/blob/master/Changed_Log.md) -- Gitee From e16da162cb8616c2adc1a6415830554865b893e7 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 24 Oct 2020 13:32:46 +0800 Subject: [PATCH 24/44] update for v1.8.99 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 184fa25..9b1b619 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.teasoft bee - 1.8.99-SNAPSHOT + 1.8.99 jar -- Gitee From d1e360aeb5fed8535ac1fc49099529521a5eb24d Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 24 Oct 2020 21:47:00 +0800 Subject: [PATCH 25/44] Optimize the way of setting DB information with Honeyconfig. --- src/test/java/org/teasoft/bee/BeeExam.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/org/teasoft/bee/BeeExam.java b/src/test/java/org/teasoft/bee/BeeExam.java index 4175455..f8d08a4 100644 --- a/src/test/java/org/teasoft/bee/BeeExam.java +++ b/src/test/java/org/teasoft/bee/BeeExam.java @@ -49,6 +49,9 @@ public class BeeExam { // Support lower and upper case option for SQL KeyWord: // bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.41.40.37.txt // bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.42.02.730-UPPER.txt + +// Optimize the way of setting DB information with Honeyconfig: +// bee-exam(v1.8.99)-normal(MySQL)-2020-10-24 21.40.20.605.txt // 测试用例请查看工程:bee-exam // 以下任意一个地址: -- Gitee From 9bc9d98f742cbb9f8278b2c6674876c8fe26761c Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 24 Oct 2020 21:47:07 +0800 Subject: [PATCH 26/44] Optimize the way of setting DB information with Honeyconfig. --- src/test/java/org/teasoft/bee/change-log.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/org/teasoft/bee/change-log.txt b/src/test/java/org/teasoft/bee/change-log.txt index f59f80d..3bad648 100644 --- a/src/test/java/org/teasoft/bee/change-log.txt +++ b/src/test/java/org/teasoft/bee/change-log.txt @@ -64,3 +64,6 @@ bee-exam(v1.8.15)-normal(SQLite)-2020-10-01 19.19.10.831.txt Support lower and upper case option for SQL KeyWord: bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.41.40.37.txt bee-exam(v1.8.99)-normal(MySQL)-2020-10-17 21.42.02.730-UPPER.txt + +Optimize the way of setting DB information with Honeyconfig: +bee-exam(v1.8.99)-normal(MySQL)-2020-10-24 21.40.20.605.txt -- Gitee From 1b5d9e41b4fe1451b16652f048d054102fb3703a Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 11:21:20 +0800 Subject: [PATCH 27/44] Support lower and upper case option for SQL KeyWord --- src/main/java/org/teasoft/bee/osql/SqlKeyWord.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java index ca9bf69..cede333 100644 --- a/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java +++ b/src/main/java/org/teasoft/bee/osql/SqlKeyWord.java @@ -25,6 +25,7 @@ package org.teasoft.bee.osql; public interface SqlKeyWord { String select(); + String as(); String from(); String where(); -- Gitee From c21c3c4ba8264df4a5e2e908e5d01e0c02b62f6b Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 11:21:36 +0800 Subject: [PATCH 28/44] Support lower and upper case option for SQL KeyWord --- src/main/java/org/teasoft/bee/osql/LowerKey.java | 6 ++++++ src/main/java/org/teasoft/bee/osql/UpperKey.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/org/teasoft/bee/osql/LowerKey.java b/src/main/java/org/teasoft/bee/osql/LowerKey.java index 3e46345..0641029 100644 --- a/src/main/java/org/teasoft/bee/osql/LowerKey.java +++ b/src/main/java/org/teasoft/bee/osql/LowerKey.java @@ -26,6 +26,7 @@ public class LowerKey implements SqlKeyWord { public static String SPACE=" ", select="select", + as="as", from="from", where="where", insert="insert", @@ -58,6 +59,11 @@ public class LowerKey implements SqlKeyWord { public String select() { return select; } + + @Override + public String as() { + return as; + } @Override public String from() { diff --git a/src/main/java/org/teasoft/bee/osql/UpperKey.java b/src/main/java/org/teasoft/bee/osql/UpperKey.java index 09aabac..13c20f4 100644 --- a/src/main/java/org/teasoft/bee/osql/UpperKey.java +++ b/src/main/java/org/teasoft/bee/osql/UpperKey.java @@ -26,6 +26,7 @@ public class UpperKey implements SqlKeyWord { public static String SPACE=" ", select="SELECT", + as="AS", from="FROM", where="WHERE", insert="INSERT", @@ -60,6 +61,11 @@ public class UpperKey implements SqlKeyWord { public String select() { return select; } + + @Override + public String as() { + return as; + } @Override public String from() { -- Gitee From 0c8dce3f5b11c4e7f8eacb2edb6dba775e86a524 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 11:21:57 +0800 Subject: [PATCH 29/44] =?UTF-8?q?v1.8.99(2020-10-25=20=E9=87=8D=E9=98=B3?= =?UTF-8?q?=E8=8A=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Changed_Log_CN.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Changed_Log_CN.md b/Changed_Log_CN.md index 8c006c9..7b99512 100644 --- a/Changed_Log_CN.md +++ b/Changed_Log_CN.md @@ -160,6 +160,7 @@ public String selectFun(String sql); 修复null bug,关于方法:PreparedSql's method select(String sql,Object preValues[]). 修复关于oracle多表查询分页bug. + **v1.8.15**(2020-10-01 3节日) 1.增强对数据库H2,SQLite,PostgreSQL的支持. 2.优化分页功能,分页参数也用占位符. @@ -168,4 +169,10 @@ public String selectFun(String sql); 5.完善日志Log功能. 6.修复json转换bug. +**v1.8.99**(2020-10-25 重阳节) +1.SQL关键字支持可配置大写或小写输出. +2.SQL缓存key可用MD5字符. +3.优化利用HoneyConfig设置DB信息的方式. +4.修复关于checkSelectField的bug. + \ No newline at end of file -- Gitee From c8b9a9d66161ef49ae72b2d931ff3f6f58a428d5 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 11:22:15 +0800 Subject: [PATCH 30/44] v1.8.99(2020-10-25 Double Ninth Festival) --- Changed_Log.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Changed_Log.md b/Changed_Log.md index 0533a5b..925ef31 100644 --- a/Changed_Log.md +++ b/Changed_Log.md @@ -160,4 +160,30 @@ fixed bug:parse the json has extra comma. fixed null bug about:PreparedSql's method select(String sql,Object preValues[]). fixed bug about Oracle more table paing. - \ No newline at end of file +**v1.8.15**(2020-10-01 3Festivals) +1.Enhance support for H2,SQLite,PostgreSQL. +2.Enhance page funtion,paging para also use placeholder. +3.Can be used in zero configuration. +4.Enhance PearFlowerId algorithm that it will produce even number with continuous mantissa of 0 when is often not used (there are no such defect in SerialUniqueId and OneTimeSnowflakeId). +5.Enhance Log function. +6.Fixed json transform bug. + +**v1.8.99**(2020-10-25 Double Ninth Festival) +1.Support lower and upper case option for SQL KeyWord. +2.Cache sql key support MD5 string. +3.Optimize the way of setting DB information with Honeyconfig. +4.Fix bug about checkSelectField. + +**v1.8.15**(2020-10-01 3Festivals) +1.Enhance support for H2,SQLite,PostgreSQL. +2.Enhance page funtion,paging para also use placeholder. +3.Can be used in zero configuration. +4.Enhance PearFlowerId algorithm that it will produce even number with continuous mantissa of 0 when is often not used (there are no such defect in SerialUniqueId and OneTimeSnowflakeId). +5.Enhance Log function. +6.Fixed json transform bug. + +**v1.8.99**(2020-10-25 Double Ninth Festival) +1.Support lower and upper case option for SQL KeyWord. +2.Cache sql key support MD5 string. +3.Optimize the way of setting DB information with Honeyconfig. +4.Fix bug about checkSelectField. \ No newline at end of file -- Gitee From a045331017f2b2218113236e363e8d97f5cc793c Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 13:21:41 +0800 Subject: [PATCH 31/44] update --- README.md | 2 ++ README_CN.md | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7e4d9ae..2de9a46 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ Bee **You don't need to write the Dao by yourself anymore**. **Good Feature:** AI, Timesaving/Tasteful, Easy, Automatic (**AiTeaSoft Style**) **Bee** see: +https://gitee.com/automvc/bee +or: https://github.com/automvc/bee **Honey** see: https://github.com/automvc/honey diff --git a/README_CN.md b/README_CN.md index f433f38..baa2a01 100644 --- a/README_CN.md +++ b/README_CN.md @@ -13,8 +13,6 @@ Bee是一种更接近SQL语言思维的ORM框架, 一种开发速度和开发成本都不比php差的Java ORM框架, 而且它的编码复杂度是O(1),即用了Bee,**无论多少个表**,你都可以不用另外再写dao代码。 -**Bee** 网址: -https://github.com/automvc/bee **Bee在gitee** 的网址: https://gitee.com/automvc/bee -- Gitee From 58604f35587998eb360c664a9311591d406dec3f Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 13:22:47 +0800 Subject: [PATCH 32/44] update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2de9a46..d273e51 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Bee **You don't need to write the Dao by yourself anymore**. **Good Feature:** AI, Timesaving/Tasteful, Easy, Automatic (**AiTeaSoft Style**) **Bee** see: -https://gitee.com/automvc/bee +https://gitee.com/automvc/bee or: https://github.com/automvc/bee **Honey** see: -- Gitee From 38e3f63aa63d1445498d9bc2a974900dda5fe255 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 13:23:40 +0800 Subject: [PATCH 33/44] update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d273e51..d551290 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Bee **Good Feature:** AI, Timesaving/Tasteful, Easy, Automatic (**AiTeaSoft Style**) **Bee** see: https://gitee.com/automvc/bee -or: +or: https://github.com/automvc/bee **Honey** see: https://github.com/automvc/honey -- Gitee From 6e032e6e02eda3511d5c344c3d9ac552656d6d4b Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 13:25:10 +0800 Subject: [PATCH 34/44] update --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index d551290..907341d 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,6 @@ Bee https://gitee.com/automvc/bee or: https://github.com/automvc/bee -**Honey** see: -https://github.com/automvc/honey ## [中文介绍](../../../bee/blob/master/README_CN.md) [点击链接可查看中文介绍](../../../bee/blob/master/README_CN.md) -- Gitee From 4f90a11dd1b9fb0ac72d79353559537eaafde49f Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 25 Oct 2020 13:50:55 +0800 Subject: [PATCH 35/44] update for v1.8.99 --- README.md | 6 +++--- README_CN.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 907341d..2ef92c3 100644 --- a/README.md +++ b/README.md @@ -234,18 +234,18 @@ Quick Start: org.teasoft bee - 1.8.15 + 1.8.99 org.teasoft honey - 1.8.15 + 1.8.99 org.teasoft bee-ext - 1.8 + 1.8.99 ``` diff --git a/README_CN.md b/README_CN.md index baa2a01..04ae645 100644 --- a/README_CN.md +++ b/README_CN.md @@ -235,18 +235,18 @@ OrdersService.java org.teasoft bee - 1.8.15 + 1.8.99 org.teasoft honey - 1.8.15 + 1.8.99 org.teasoft bee-ext - 1.8 + 1.8.99 ``` -- Gitee From 1bf5a5b5c0c2b382d82cba67af5e99e9fbe54259 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Tue, 27 Oct 2020 23:23:09 +0800 Subject: [PATCH 36/44] update README_CN --- README_CN.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README_CN.md b/README_CN.md index 04ae645..52a0c24 100644 --- a/README_CN.md +++ b/README_CN.md @@ -283,6 +283,7 @@ import org.teasoft.bee.osql.Suid; import org.teasoft.honey.osql.core.BeeFactory; /** + * 查,改,增,删 Suid (select,update,insert,delete)实例 * @author Kingstar * @since 1.0 */ @@ -297,38 +298,38 @@ public class SuidExam { orders1.setId(100001L); orders1.setName("Bee(ORM Framework)"); + //1:select查询实例 //默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件 List list1 =suid.select(orders1); //select for (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); //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默认插入 - int insertNum=suid.insert(orders2); //insert System.out.println("insert record:"+insertNum); + //4:delete 删除实例 //默认不处理null和空字符串.不用再写一堆的判断;其它有值的字段全部自动作为过滤条件 -// int deleteNum=suid.delete(orders2); //delete -// System.out.println("delete record:"+deleteNum); + //int deleteNum=suid.delete(orders2); //delete + //System.out.println("delete record:"+deleteNum); - List list2 =suid.select(orders1); //select confirm the data - for (int i = 0; i < list2.size(); i++) { - System.out.println(list2.get(i).toString()); - } } - } //注意: 事务,分页,排序,范围查询,查询结果直接返回json等都支持,这里只是一个入门例子. -- Gitee From 2834506982cb5fa4d8d17fd424b4519005206c3d Mon Sep 17 00:00:00 2001 From: Kingstar Date: Tue, 27 Oct 2020 23:25:00 +0800 Subject: [PATCH 37/44] update README --- README.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2ef92c3..2328c2e 100644 --- a/README.md +++ b/README.md @@ -297,13 +297,13 @@ public class SuidExamEN { orders1.setId(100001L); orders1.setName("Bee(ORM Framework)"); - List list1 = suid.select(orders1); // select + List list1 = suid.select(orders1); // 1. select for (int i = 0; i < list1.size(); i++) { Logger.info(list1.get(i).toString()); } orders1.setName("Bee(ORM Framework)"); - int updateNum = suid.update(orders1); // update + int updateNum = suid.update(orders1); //2. update Logger.info("update record:" + updateNum); Orders orders2 = new Orders(); @@ -312,17 +312,11 @@ public class SuidExamEN { orders2.setTotal(new BigDecimal("91.99")); orders2.setRemark(""); // empty String test - int insertNum = suid.insert(orders2); // insert + int insertNum = suid.insert(orders2); // 3. insert Logger.info("insert record:" + insertNum); - int deleteNum = suid.delete(orders2); // delete + int deleteNum = suid.delete(orders2); // 4. delete Logger.info("delete record:" + deleteNum); - - List list2 = suid.select(orders1); // select confirm the data - for (int i = 0; i < list2.size(); i++) { - Logger.info(list2.get(i).toString()); - } - } catch (BeeException e) { Logger.error("In SuidExamEN (BeeException):" + e.getMessage()); e.printStackTrace(); -- Gitee From ab9346c61f7d3eea399d1beba6e68729a449cf51 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 8 Nov 2020 23:00:31 +0800 Subject: [PATCH 38/44] update for v1.8.99 --- README.md | 4 ++-- README_CN.md | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2328c2e..496c43f 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ Bee **You don't need to write the Dao by yourself anymore**. **Good Feature:** AI, Timesaving/Tasteful, Easy, Automatic (**AiTeaSoft Style**) **Bee** see: -https://gitee.com/automvc/bee -or: https://github.com/automvc/bee +or: +https://gitee.com/automvc/bee ## [中文介绍](../../../bee/blob/master/README_CN.md) [点击链接可查看中文介绍](../../../bee/blob/master/README_CN.md) diff --git a/README_CN.md b/README_CN.md index 52a0c24..4d11741 100644 --- a/README_CN.md +++ b/README_CN.md @@ -6,6 +6,8 @@ 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 的思维转变!)。 @@ -96,7 +98,7 @@ PreparedSql添加三个新方法 ## [详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) [点击链接可查看 详细完整功能介绍](../../../bee/blob/master/Changed_Log_CN.md) -## ORM Compare +## ORM比较 [ORM-Compare (More Detail)](../../../orm-compare) @@ -335,7 +337,7 @@ public class SuidExam { ``` -#### [More example/test case](../../../bee-exam/) +#### [更多例子/测试用例](../../../bee-exam/) 综合应用: ========= -- Gitee From 6a1a39af8cf6e92ae4e1140a034d7aa98e35be9c Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 8 Nov 2020 23:02:10 +0800 Subject: [PATCH 39/44] update for v1.8.99 --- README_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_CN.md b/README_CN.md index 4d11741..cb42d2e 100644 --- a/README_CN.md +++ b/README_CN.md @@ -6,7 +6,7 @@ Bee **Bee** 是一个简单,易用,功能强大,开发速度快,编码少的 JAVA ORM 框架。 Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;10分钟即可学会使用。 Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化;具有分布式特性。高级要求,还可以方便自定义SQL语句。 -**如果说Mybatis在Hibernate之后不是重复造轮子,那Bee在Hibernate和Mybatis之后也不会是重复造轮子! ** +**如果说Mybatis在Hibernate之后不是重复造轮子,那Bee在Hibernate和Mybatis之后也不会是重复造轮子!** 择其优点,避其缺点,此外,还加有自己的优点! #### 磨刀不误砍柴工! Bee连磨刀的时间都帮你省了。 -- Gitee From 3b77144a0a1857171984c4a56bb1746054755d0a Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 8 Nov 2020 23:03:22 +0800 Subject: [PATCH 40/44] update for v1.8.99 --- README_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_CN.md b/README_CN.md index cb42d2e..ab08f6a 100644 --- a/README_CN.md +++ b/README_CN.md @@ -7,7 +7,7 @@ Bee Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;10分钟即可学会使用。 Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化;具有分布式特性。高级要求,还可以方便自定义SQL语句。 **如果说Mybatis在Hibernate之后不是重复造轮子,那Bee在Hibernate和Mybatis之后也不会是重复造轮子!** -择其优点,避其缺点,此外,还加有自己的优点! +择其优点,避其缺点,此外,还加有自己的优点! #### 磨刀不误砍柴工! Bee连磨刀的时间都帮你省了。 **Bee** 是一个具有人工智能(AI)特性,省时/优雅、简易、自动( **AiTea:** Timesaving/Tasteful, Easy, Automatic) 的ORM软件框架(AiTeaSoft)(IT-->AiTea 的思维转变!)。 -- Gitee From 3a9b3736e0e10a6a0e9a8473e15e8f749056a8a2 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 14 Nov 2020 11:51:40 +0800 Subject: [PATCH 41/44] update FAQ --- FAQ_CN.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/FAQ_CN.md b/FAQ_CN.md index bec0864..dcb9585 100644 --- a/FAQ_CN.md +++ b/FAQ_CN.md @@ -4,7 +4,7 @@ Q: Bee支持几种数据库? -A: mysql,MariaDB,oracle,sqlserver...只要该DB支持JDBC,Bee就可以轻松支持它! +A: MySQL,MariaDB,Oracle,SQL Server,H2,SQLite,PostgreSQL等等都是支持的,只要该DB支持JDBC,Bee就可以轻松支持它! 2. @@ -146,6 +146,19 @@ condition.setAdd("p", "step"); A: ORM Bee框架是采用接口与实现分离的设计方式.Bee是接口,而Honey则是Bee的实现. +15. + +Q: Bee非常易用,编写代码少,但使用是一方面, 它的性能如何? + +A: 性能绝对是过得去的.README给出了详细的表格比较数据.  详细比较还开户了一个项目,欢迎PK. +https://gitee.com/automvc/orm-compare + +16. + +Q: Bee适合手机开发领域吗? + +A: Bee文件小。bee V1.8 jar files 仅217k. 而且性能也接近JDBC的性能.还专门对H2,SQLite作了优化. + **其它相关资源:** gitee issue: [https://gitee.com/automvc/bee/issues?assignee\_id=&author\_id=&branch=&issue\_search=&label\_name=&milestone\_id=&program\_id=&scope=&sort=&state=closed](https://gitee.com/automvc/bee/issues?assignee_id=&author_id=&branch=&issue_search=&label_name=&milestone_id=&program_id=&scope=&sort=&state=closed)  -- Gitee From 0481646e7c3591f1a2f1451ce940852d1d64e353 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sat, 14 Nov 2020 11:53:27 +0800 Subject: [PATCH 42/44] update FAQ --- FAQ_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ_CN.md b/FAQ_CN.md index dcb9585..6919068 100644 --- a/FAQ_CN.md +++ b/FAQ_CN.md @@ -150,7 +150,7 @@ A: ORM Bee框架是采用接口与实现分离的设计方式.Bee是接口,而Ho Q: Bee非常易用,编写代码少,但使用是一方面, 它的性能如何? -A: 性能绝对是过得去的.README给出了详细的表格比较数据.  详细比较还开户了一个项目,欢迎PK. +A: 性能绝对是过得去的.README给出了详细的表格比较数据.  详细比较还开户了一个项目,欢迎PK。 https://gitee.com/automvc/orm-compare 16. -- Gitee From d8a97904d4de80e4362968eb5c6f87850ea30d50 Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 15 Nov 2020 18:31:25 +0800 Subject: [PATCH 43/44] update FAQ --- FAQ_CN.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ_CN.md b/FAQ_CN.md index 6919068..56805bd 100644 --- a/FAQ_CN.md +++ b/FAQ_CN.md @@ -78,7 +78,7 @@ A: Hibernate的概念太复杂,学习成本高,更新会先查询再更新 Q: Bee如何提高Java web软件开发效率? -A: 除了可以不需要写dao代码外(编码复杂度为O(1)),还提供了表对应的实体Javabean自动生成工具, 根据模板自动生成Java web前后端代码;人性化的SQL日志,可输出直接运行的sql语句(而不只是有占位符的). +A: 除了可以不需要写dao代码外(编码复杂度为O(1)),还提供了表对应的实体Javabean自动生成工具, 根据模板自动生成Java web前后端代码;人性化的SQL日志,可输出直接运行的sql语句(有占位符的SQL不能直接运行,不方面调试). 11. @@ -150,7 +150,7 @@ A: ORM Bee框架是采用接口与实现分离的设计方式.Bee是接口,而Ho Q: Bee非常易用,编写代码少,但使用是一方面, 它的性能如何? -A: 性能绝对是过得去的.README给出了详细的表格比较数据.  详细比较还开户了一个项目,欢迎PK。 +A: 性能绝对是过得去的.README给出了详细的表格比较数据.  详细比较还开启了一个项目,欢迎PK。 https://gitee.com/automvc/orm-compare 16. -- Gitee From 6a16a8f6ed996fcbff2284038be54a5e3a7c625d Mon Sep 17 00:00:00 2001 From: Kingstar Date: Sun, 15 Nov 2020 18:32:51 +0800 Subject: [PATCH 44/44] update FAQ --- FAQ_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ_CN.md b/FAQ_CN.md index 56805bd..1fa83b1 100644 --- a/FAQ_CN.md +++ b/FAQ_CN.md @@ -78,7 +78,7 @@ A: Hibernate的概念太复杂,学习成本高,更新会先查询再更新 Q: Bee如何提高Java web软件开发效率? -A: 除了可以不需要写dao代码外(编码复杂度为O(1)),还提供了表对应的实体Javabean自动生成工具, 根据模板自动生成Java web前后端代码;人性化的SQL日志,可输出直接运行的sql语句(有占位符的SQL不能直接运行,不方面调试). +A: 除了可以不需要写dao代码外(编码复杂度为O(1)),还提供了表对应的实体Javabean自动生成工具, 根据模板自动生成Java web前后端代码;人性化的SQL日志,可输出直接运行的sql语句(有占位符的SQL不能直接运行,不方便调试). 11. -- Gitee