ORM 框架 Bee v1.7.1 发布,bee-1.7.1-javadoc API 更新

来源: 投稿
作者: BeeHoney
2020-02-26

Bee一个十分钟就可以上手的Java ORM框架! 

Bee 是一个简单,易用,功能强大开发速度快的 JAVA ORM 框架。

具有人工智能(AI)、省时/优雅、简单易用、自动( Tea: Timesaving/Tasteful, Easy, Automatic) 风格的软件(AITeaSoft)。

Bee有一个特点就是编码量少。相信学计算机的人很多都懂时间复杂度空间复杂度度。但我们天天编写的代码,是不是也要列为研究对象呢?!  请大家多了解下:  编码复杂度,让你的代码写得更加简洁 !                   

 Bee的编码复杂度是O(1),不管操作多少张表,都可以不需要写额外的dao代码。

 

最新的 bee-1.7.1-javadoc API 请到码云Bee项目首页附件处下载。

https://gitee.com/automvc/bee

 

展开阅读全文
11 收藏
分享
加载中
最新评论 (12)
Bee 80%的测试用例/样例已更新,请关注Bee最新代码,项目首页:
https://gitee.com/automvc/bee
2020-03-03 10:26
0
回复
举报
Bee的目标之一,就是要仅用十分钟就能让一个新人上手。
就好像用navicat操作mysql数据库一样简单。
ORM只是我们操作数据库的一个工具,而不应该是我们的负担。

获取了bee的jar包,配置好数据库信息,
在main方法里写以下四个语句,就能查出一个表的数据。
Suid suid=BeeFactory.getHoneyFactory().getSuid();
Orders orders1=new Orders();
orders1.setId(100001L);
List<Orders> list1 =suid.select(orders1); //select
2020-02-28 09:11
0
回复
举报
我没有为其它DAO工具站台的意思,它们没一个我看着完全顺眼,挑不出毛病的,这也是我要重新发明轮子的原因。
如果是Hibernate,你的例子可以用下面的HQL查询:
Session session = sessionFactory.openSession();
List orders= session.createQuery("from Orders o where o.id=:id").setLong("id", 100001L).list();
如果是用jSqlBox则是这样:
DbContext db=new DbContext(dataSource);
List<Orders> list1 =db.findAll(Orders.class, " where id=?", param(100001L), " and price >=? and price <?", param(10,20));
我两个例子并一起了,你下面那个问题也合在上面例子里了。实体允许无配置、只声明接口或保持POJO这些jSqlBox都有。强制无配置并不是优点,只能说是功能缺失,因为复杂情况下,如自动生成时间戳、修改人、自动主键、分库分表键等,还是需要用注解或动态配置方式去做些配置的,做ORM工具的,不光要考虑最简单的情况,最复杂的情况也要有方案提供。
2020-02-28 18:05
0
回复
举报
看不出有多大区别
2020-02-28 21:51
0
回复
举报
Hibernate ORM(Spring data JPA方式)举例与编码复杂度
详细说明请访问:
https://blog.csdn.net/abckingaa/article/details/104541628
2020-02-27 18:43
0
回复
举报
把SQL写成方法名是Spring Data JPA的发明,但是你也可以不用Spring的这个功能啊,Spring的这个发明个人认为是个反模式。Hibernate JPA你也可以在一个DAO中保存或注入一个SessionFactory单例,然后就用这一个单例操作所有HQL和实体的CRUD啊,我在10年就这么干了。
Hibernate的问题主要有两个:1是实体容器复杂难操纵、容易与SQL操作产生破坏一级缓存的冲突。2是HQL不是标准SQL,对DBA不友好,不利移植。
我几年前在动笔写ORM工具时,把能找到的ORM、DAO工具都拿出来找了一遍缺点,现在有点过时,仅供参考:
https://cloud.tencent.com/developer/article/1077878
很高兴与你谈纯技术,做开源要善于和其它项目做对比,找出其它项目的缺点,我认为这是很好的做法,可以互相促进。但是如果找缺点找错了,也不应该介意其它人指出。
2020-02-28 01:49
0
回复
举报
十年确实是很长的一个时间, ORM工具也发生了很大的变化。 不知你给的例子是基于什么作的比较?
无 XML、无注解、动态配置、CRUD 方法、ORM、分页 等,跟我想的一样,都是ORM工具应该追求的目标。
低侵入,PO 类只需要声明实现 Entity 接口即可(仅适用于 Java8 及以上,对于 Java 7及以下需要继承自 EntityBase 基类)。 个人觉得,PO类要实现接口,或继承一个基类,是很重的入侵。

一个好的ORM工具,应该保持表对应的实体是纯的POJO类, 甚至要支持无get,set方法也可以,毕竟get,set可以理解只是给程序用的。
2020-02-28 08:55
0
回复
举报
对于一些复杂查询, 有没有比较过各个ORM呀,给个url,让大伙学习下。谢谢了!
像这种:
面向对象方式的范围查询,如price between 10 and 20, price >=1 and price <10之类.
2020-02-28 08:58
0
回复
举报
DAO类有时写出多个来只是为了划分业务逻辑而写的,并不是说技术上限制只能写成一个Service对应一个DAO。除了MyBatis这种建立在SqlMapper架构上的工具外,其它的ORM工具如Hibernate、NutzDao、jFinal、MyBatis-Plus还有我的jSqlBox都是可以一个DAO走天下的,也就是你说的O(1)。做开源要进行横向比较是非常必要的,指出其它项目的缺点,用自已的项目来演示有更好的方案,这很好,但是缺点要找对,这个O(1)并不是其它ORM工具的弱项。
2020-02-27 00:54
0
回复
举报
中国人讲究的是己所不欲,忽施于人。 开源软件的free首先是自由,而不是免费。纯属技术讨论,不要有任何偏见和压力。
编码复杂度是O(1)只是其中一个特点。 到Bee项目首页, Ctrl + F 搜索: 功能介绍 或者: Bee主要功能特点介绍
请特别留意下v1.6 和 v1.7版本的新特性。

Hibernate ORM(Spring data JPA方式)举例
例子来源于Spring data的官方例子,是采用JPA的方式。
每个实体对应的dao接口
public interface UserDao extends CrudRepository<User, Integer> { }
public interface OrdersDao extends CrudRepository<Orders, Long> {
//不能用组合条件.若要用,需要在对应接口写方法
List<Orders> findByUseridAndTotal(String userid, BigDecimal total);
}
public interface OrderitemDao extends CrudRepository<Orderitem, Long> { }

每个Dao都要定义一个接口文件,即使是空的也需要,那1000个JavaBean文件就要有1000个类似的接口。那n个JavaBean呢,就需要有n个类似的接口, 这样编码复杂度就是O(n)。
2020-02-27 18:37
0
回复
举报
DAO类有时写出多个来只是为了划分业务逻辑而写的

这个我赞同。 但问题是,我想要用同一个dao解决大部分DB访问的时候,有没有这个选择!
2020-02-27 18:46
0
回复
举报
看到这个项目的,希望关注下 编码复杂度 这个新的概念。相信大家都知道时间复杂度和空间复杂度,
但天天编写的代码,是不是也应该列为对象研究下。

百度百科:编码复杂度
https://baike.baidu.com/item/编码复杂度/23229411?fr=aladdin
https://baike.baidu.com/item/%E7%BC%96%E7%A0%81%E5%A4%8D%E6%9D%82%E5%BA%A6/23229411?fr=aladdin
2020-02-26 16:09
0
回复
举报
更多评论
12 评论
11 收藏
分享
返回顶部
顶部