五分钟内快速了解:5分钟快速学习
五分钟内快速了解:5分钟快速学习易于维护跨数据库平台支持,Oracle Postgres mysql 以及SQLServer,DB2,H2,SQLLite,包括翻页,排序,还有各个厂商特殊语法支持OR/Mapping悲观锁,乐观锁,逻辑删除等辅助支持等即支持简单的CRUD,也支持数十行,上百行SQL编写
摘要: 本博客帮助用户了解什么是BeetlSQL,以及为什么要用Beetlsql
企业应用面临的问题
-
高效编写数据库访问代码
-
内置CRUD,不需要写SQL
-
支持OR/Mapping
-
悲观锁,乐观锁,逻辑删除等辅助支持等
-
即支持简单的CRUD,也支持数十行,上百行SQL编写
-
跨数据库平台支持,Oracle Postgres mysql 以及SQLServer,DB2,H2,SQLLite,包括翻页,排序,还有各个厂商特殊语法
-
易于维护
-
重构支持
-
易于修改
-
DBA友好
-
丰富的调试手段,详细日志输出
-
Interceptor支持:具备SQL执行监控,SQL重写
-
支持POJO或者Map,或者混合模型
-
内置API调用完成
-
Query链式查询
-
Markdown 维护复杂SQL
-
支持POJO,也支持Map或者混合模型
-
主从支持和Sharding-JDBC分表分库集成
Java8
处理复杂SQL
超简单的Dao实现
-
console.user 指明了SQL文件的位置,方法名对应了SQL片段名称。
-
继承BaseMapper可以获得内置的CRUD等若干现成方法
内置DebugInterceptor,也支持扩展,用于安全监控,性能监控,改写SQL
完美定位到业务场景发生代码,消费时间,输入输出。
简单支持复杂关系映射查询
一个用户关联一个部门,关联多个角色
跨数据平台-
内置操作都是跨数据库平台,依赖不同的XXDBStyle
-
提供翻页内置操作,支持不同数据库
-
MarkDown 管理不同数据库平台的有差异的SQL
-
sql/user.md
-
sql/oracle/user.md
-
sql/mysql/user.md
每个Dao工具都有特定使用范围和历史背景,没有最好的工具,只有适合自己的工具
-
JPA: 缺少管理复杂SQL能力,OR/Mapping 太强大容易用错。
-
Spring Data: 主要目的是SQL和NOSQL统一api,应用场景较为简单。其他缺点同JPA
-
Mybatis: 缺少内置功能,XML管理SQL不方便,出错调试难度大(没有自己的语法体系),OR/Mapping 功能弱
-
MyBatis-Plus: 国内基于Mybatis封装功能,具备内置功能和Lock,逻辑删除等方便的功能。缺点同BeetlSQL一样,都是国内个人维护。
-
JOOQ:应用场景较为简单,类似BeetlSQL Query功能,实际使用起来比较复杂
-
EBean:功能同JPA,比Hiberante弱,比JPA强。缺点同JPA
-
Spring-JDBCTemplate: 几乎没有提供企业应用需要的任何功能,还需要二次封装才能使用
-
混合JPA,MyBatis JOOQ功能
-
创立Markdown管理复杂SQL
-
Hibernate 1个月入门,半年精通
-
JPA 一周入门,3个月年精通
-
MyBatis 一周入门,一个月精通
-
BeetlSQL 3天入门,2周精通