beetlsql

BeetlSQL 实现 ORMapping查询

限于喜欢 提交于 2019-12-05 08:11:54
我在 hibernate,mybatis,beetlsql 全面比较 中说明了BeetlSQL 在开发效率,维护性,跨 数据库 等各指标全面比 hibernate 占优,但在ORM 方面不如Hibernate,这么多年来,hibernate已经成为 Java 的 ORMapping事实上的标准和方向,但我也在文章中指出,通过注解Annotation能指明java实体类的关系,但通过注解不能阐述所有的ORM查询,比如,我想查询跟订单关联的所有有效子订单,而不是所有子订单。 注解的表现力在ORMapping 中越来越不足,也使得大量ORMapping工具通过别的方式来实现ORM查询,让我们看看BeeetlSQL 新增的ORM查询是如何简单灵活的实现ORM查询的。 如下一个常用场景,以用户为中心,一个用户关联到多个订单,一个用户属于一个部门,用户和角色是多对多的关系。这个场景涉及到了一对一,一对多,多对多。让我们看看BeetlSQL是如何轻松实现 ORM查询的。(不想看文字直接看代码的可以访问 https://code.csdn.net/xiandafu/beetlsql_orm_sample/tree/master) BeetSQL 实现ORM查询是在sql查询语句里使用orm.single,orm.many 俩个函数,如下例子(位于src/main/resource/sql/user

BeetlSql 单表查询工具(Query)使用说明

孤街醉人 提交于 2019-12-04 08:12:17
本文转自BeetlSQL开发者 Gavin-King的博客 在实际应用场景中大部分时候是在针对单表进行操作,单独的写一条单表操作的SQL较为繁琐,为了能进行高效、快捷、优雅的进行单表操作,Query查询器诞生了。 Query使用方式和风格介绍 我们以一个 User表为例,查询模糊查询用户名包含 "t" ,并且delete_time 不为空的数据库,按照id 倒序。 Query<User> query = sqlManager.query(User.class); List<User> list = query.andLike("name", "%t%") .andIsNotNull("delete_time") .orderBy("id desc").select(); 从上面的例子可以看出,Query是使用链式调用,看起来就像一个完整的sql一般,使用方式遵从用户平时SQL编写习惯,所以用户在使用过程中需遵循SQL格式。 所有的条件列完之后,再调用select(要执行的方法:select,insert,update,count 等等); 这里有的同学可以看出来,直接使用数据库字段,这样不妥啊!要是重构怎么办。虽然大部分时候建立的数据库字段不会重命名,BeetlSql 还是支持列名重构,代码如下: List<User> list1 = sql.query(User.class)

SpringBoot (四)druid及beetlSQL配置

匿名 (未验证) 提交于 2019-12-03 00:19:01
上篇主要讲述了SpringBoot Maven搭建层层之间的关系,本篇则主要针对beetlSQL,druid数据源来整合一下。 对于beetlSQL的好处 beetlSQL基本使用 中当中已经讲述,这里则不再多提。 再beetlSQL的配合使用中,我们使用了alibaba的Druid数据库连接池,Druid这个新生代的后期勃发再此不多说,可以自行学习。配置Druid很简单: 1、添加Maven依赖(包含mysql和beetlSQL的Maven依赖也一并加上) <!--mysql--> < dependency > < groupId > mysql </ groupId > < artifactId > mysql-connector-java </ artifactId > < version > 5.1.45 </ version > </ dependency > <!--阿里巴巴Druid数据源--> < dependency > < groupId > com.alibaba </ groupId > < artifactId > druid </ artifactId > < version > 1.1.6 </ version > </ dependency > <!--beetlSQL--> < dependency > < groupId > com.ibeetl

深度吐槽hibernate

╄→尐↘猪︶ㄣ 提交于 2019-11-28 09:18:09
hibernate 我很久都没有用了,最后一次用应该是3年前的一个企业项目,决定采用hibernate的并不是我,是我领导,我只是开发者。我所受的罪领导并不知道。正 如我的每个hibernate项目那样,每次我都是用的提心吊胆。尽管我从ejb1.1到hiberate,然后再到jpa都经历过,这种一脉相承的技术 我了解和应用了有14年,但我还是不敢声称精通OR Mapping,尤其是最近hibernate版本又都了些新概念和新Annotation,让我还觉得我是个hibernate新手:OR Mapping 也许就是个DAO错误的方向。 让我来吐槽一下hibernate这种DAO工具,并提一下我认为完美的DAO工具。 槽点一 容器设计的败笔 。 系统的核心是模型,也就是JavaBean,使用hiberante的项目,JavaBean被持久化容器劫持这是第一个槽点。尽管对模型操作,在容器的 帮助下,能很快映射到数据库操作,然而,现在越多越多的DAO框架都避免设计容器,就算是JPA规范,也只声称了是个API,而不再提持久化容器了,因为 持久化容器已经不得人心了. 以下是使用hibernate经常出现的问题(但不限于下面几个) 1 容器内,对模型的操作我不一定得映射到数据库里,可容器会强制 2 对象在容器内,一切操作都很顺利,但出了容器,会有各种hibernate异常

spring Boot+beetl +beetlSql 内置sqlManager的简单使用

[亡魂溺海] 提交于 2019-11-26 06:39:04
beetBeetl是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,超过当前流行的模板引擎。而且还易学易用。 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量。 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型。内置sql真的很棒!!!普通增删查改都不用书写直接使用内置sql,而且书写的sql也没有myBatis复杂的配置 作者:闲大赋 简单介绍结束,有想更加深入了解的,请去beetl官网自习了解,下面就切入正题 咱们先看一下Dao层的分页与条件查询, @SqlResource注解表明去哪里寻找sql文件 这里的PageQuery 是拿取到与数据库交互的数据, import org . beetl . sql . core . annotatoin . SqlResource ; import org . beetl . sql . core . engine . PageQuery ; import org . beetl . sql . core . mapper .