快捷搜索:  汽车  科技

五分钟内快速了解:5分钟快速学习

五分钟内快速了解:5分钟快速学习易于维护跨数据库平台支持,Oracle Postgres mysql 以及SQLServer,DB2,H2,SQLLite,包括翻页,排序,还有各个厂商特殊语法支持OR/Mapping悲观锁,乐观锁,逻辑删除等辅助支持等即支持简单的CRUD,也支持数十行,上百行SQL编写

摘要: 本博客帮助用户了解什么是BeetlSQL,以及为什么要用Beetlsql

五分钟内快速了解:5分钟快速学习(1)

企业应用面临的问题
  • 高效编写数据库访问代码

    • 内置CRUD,不需要写SQL

    • 支持OR/Mapping

    • 悲观锁,乐观锁,逻辑删除等辅助支持等

  • 即支持简单的CRUD,也支持数十行,上百行SQL编写

  • 跨数据库平台支持,Oracle Postgres mysql 以及SQLServer,DB2,H2,SQLLite,包括翻页,排序,还有各个厂商特殊语法

  • 易于维护

    • 重构支持

    • 易于修改

    • DBA友好

  • 丰富的调试手段,详细日志输出

  • Interceptor支持:具备SQL执行监控,SQL重写

  • 支持POJO或者Map,或者混合模型

BeetlSQL 使用方式
  • 内置API调用完成

  • Query链式查询

  • Markdown 维护复杂SQL

  • 支持POJO,也支持Map或者混合模型

  • 主从支持和Sharding-JDBC分表分库集成

内置API

五分钟内快速了解:5分钟快速学习(2)

Java8

五分钟内快速了解:5分钟快速学习(3)

处理复杂SQL

五分钟内快速了解:5分钟快速学习(4)

超简单的Dao实现

五分钟内快速了解:5分钟快速学习(5)

  • console.user 指明了SQL文件的位置,方法名对应了SQL片段名称。

  • 继承BaseMapper可以获得内置的CRUD等若干现成方法

调试

内置DebugInterceptor,也支持扩展,用于安全监控,性能监控,改写SQL

五分钟内快速了解:5分钟快速学习(6)

完美定位到业务场景发生代码,消费时间,输入输出。

简单支持复杂关系映射查询

五分钟内快速了解:5分钟快速学习(7)

一个用户关联一个部门,关联多个角色

跨数据平台
  • 内置操作都是跨数据库平台,依赖不同的XXDBStyle

  • 提供翻页内置操作,支持不同数据库

  • MarkDown 管理不同数据库平台的有差异的SQL

    • sql/user.md

    • sql/oracle/user.md

    • sql/mysql/user.md

一句话总结其他Dao工具问题

每个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: 几乎没有提供企业应用需要的任何功能,还需要二次封装才能使用

总结BeetlSQL
  • 混合JPA,MyBatis JOOQ功能

  • 创立Markdown管理复杂SQL

学习曲线
  • Hibernate 1个月入门,半年精通

  • JPA 一周入门,3个月年精通

  • MyBatis 一周入门,一个月精通

  • BeetlSQL 3天入门,2周精通

猜您喜欢: