BeetSql 是一个全功能DAO工具, 同时具有 Hibernate 优点 & Mybatis 优点功能,适用于承认以SQL为中心,同时又需要工具能自动生成大量常用的SQL的应用。
[TOC]
BeetlSQL 特点
- 开发效率
- 无需注解,自动使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量
- 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型
- SQL 模板基于Beetl实现,更容易写和调试,以及扩展
- 可以针对单个表(或者视图)代码生成pojo类和sql模版,甚至是整个数据库。能减少代码编写工作量
- 维护性
- SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。
- 可以自动将sql文件映射为dao接口类
- 灵活直观得支持一对一,一对多,多对多关系映射而不引入复杂的OR Mapping概念和技术。
- 具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能
- 其他
- 内置支持主从数据库支持的开源工具
- 性能数倍于JPA,MyBatis
- 支持跨数据库平台,开发者所需工作减少到最小,目前跨数据库支持mysql,postgres,oracle,sqlserver,h2,sqllite,DB2.
环境/版本一览:
- 开发工具:Intellij IDEA 2018.2.2
- springboot: 2.0.5.RELEASE
- jdk:1.8.0_171
- maven:3.3.9
- beetlsql:2.10.34
1、搭建
2、pom.xml
1 | <dependencies> |
3、application.yml
1 | spring: |
4、sql
创建数据库chapter7
,并执行下面的sql
1 | CREATE TABLE `user` ( |
5、resources
在 resources 下面创建 sql 文件夹,在 sql 文件夹下,创建 user.md (该文件用来书写 sql 语句)
1 | selectByName |
#
表示占位符号,#name#
表示将接收一个名称为name
的参数
6、config
DataSourceConfig.java
1 | package com.fatal.config; |
BeetlSqlConfig.java
1 | package com.fatal.config; |
7、entity
1 | package com.fatal.entity; |
8、mapper
Mapper 对应的sql文件默认根据实体来确定,如实体是UserInfo对象,则对应的sql文件是userInfo.md(sql)。可以通过@SqlResource 注解来指定Mapper对应的sql文件
1 | package com.fatal.mapper; |
9、service
IUserService.java
1 | package com.fatal.service; |
IUserServiceImpl.java
1 | package com.fatal.service.impl; |
10、controller
1 | package com.fatal.controller; |
11、UserMapperTest
1 | package com.fatal.mapper; |
启动
测试
访问
1 | http://localhost:8080/user/1 |
控制台
显示
访问
1 | http://localhost:8080/user/query/fatal |
控制台
显示
运行lambdaQueryTest(),控制台如下
整合成功啦!
参考资料
总结
SpringBoot
的知识已经有前辈在我们之前探索了。比较喜欢的博主有:唐亚峰 | Battcn、方志朋的专栏、程序猿DD、纯洁的微笑。对这门技术感兴趣的可以去他们的博客逛逛。谢谢他们的分享~~
以上文章是我用来学习的Demo
,都是基于 SpringBoot2.x
版本。
源码地址: https://github.com/ynfatal/springboot2-learning/tree/master/chapter7