数据访问框架BeetlSQL的目标是提供开发敏捷,维护便捷,运行高速的数据库访问框架,在一个系统多表,多库,主从库的情况下,提供一致的编写代码方式。支持如下数据平台
传统数据库:MySQL,MariaDB,Oralce,Postgres,DB2,SQL Server,H2,SQLite,Derby,神通,达梦,华为高斯,人大金仓,PolarDB,万里开源GreatSQL,南大通用GBase8s等大数据:HBase,ClickHouse,Cassandar,Hive物联网时序数据库:Machbase,TD-Engine,IotDBSQL查询引擎:Drill,Presto,Druid内存数据库:ignite,CouchBaseBeetlSQL目标是代替传统的Hibernate,JPA,MyBatis,提供真正适合企业开发用的数据库ORM开发框架
BeetlSQL 不仅仅是简单的类似MyBatis或者是Hibernate,或者是两者的综合,BeetlSQL目的是对标甚至超越Spring Data,是实现数据访问统一的框架,无论是传统数据库,还是大数据,还是查询引擎或者时序库,内存数据库。
访问在线体验网站,直接试用BeetlSQL ,可以访问本网站的在线体验|BeetlSQL3
如果有未支持的数据库(能基于JDBC访问),那请联系我 xiandafu@126.com, 或者参考《扩展BeetlSQL3》 自行适配
beetlsql 提供SpringBoot+多库多租户+数据权限等示例: https://gitee.com/xiandafu/springboot3-beetl-beetlsql-example
适合用户如果你觉得mybatis,myabtis-plus 也不错,但也想看看其他国产数据库访问框架你不想把精力浪费在简单据库增删改查上?BeetlSQL 内置数据库的CRUD功能你是属于以SQL为中心的程序员派别。BeetlSQL提供了较好的SQL管理,以及内置大量SQL你是对代码可维护性有高要求的架构师?BeetlSQL的设计目的就是尽可能提高数据库访问代码可维护性平台级产品需要跨库,支持各种客户数据库的?BeetlSQL 支持各种库,程序员编写一次,能运行到各种数据库系统需要连接多种库,比如连接商品库,连接订单库,或者设备基本信息在MySQL,设备数据在Clickhouse里。BeetlSQL很容易支持各种库,并能一统一的方式使用系统初期单库单表,长期需要多库多表?BeetlSQL很容易实现多库多表而不需要程序员过多关注。如果你对BeetlSQL3不了解,建议先看《BeetlSQL3特点》章节。看看BeetlSQL3的功能和代码风格你是否喜欢。如果喜欢,可以阅读《快速开始》动手实践,或者《SpringBoot 快速开始》。
编译源码git clone https://gitee.com/xiandafu/beetlsql
mvn clean package
mvn clean install # 如果想修改源码注意:BeetlSQL3 集成了Spring,以及支持大数据等,就算配置了国内镜像,也可能需要很长时间下载大数据依赖包,为了让编译快速通过,你需要进入pom.xml ,屏蔽sql-integration,sql-db-support,sql-jmh三个模块
如果你对beetlsql的性能,以及其他ORM性能感兴趣,可以阅读《beetlsql性能》
直接看代码如果项目编译通过,那可以直接运行单元测试或者samples模块的实例代码
sql-test包含了单元测试,有60+单元测试方法,采用了H2数据库,数据脚本是db-init.sql因此可以直接运行任何一个单元测试方法.
sql-samples 又包含了三个模块大约100个例子,所有例子也采用了H2数据库,可以直接使用。
quickstart: BeetlSQL基础使用例子,可以快速了解BeetlSQL3usage: BeetlSQL所有API和功能plugin:BeetlSQL高级扩展实例以usage模块为例子,包含如下代码
S01MapperSelectSample 15个例子, mapper中的查询演示S02MapperUpdateSample 11个例子, mapper中更新操作S03MapperPageSample 3个例子,mapper中的翻页查询S04QuerySample 9个例子,Query查询S05QueryUpdateSample 3个例子,Query完成update操作S06SelectSample 14个例子,SQLManager 查询APIS07InsertSample 8个例子,SQLManager 插入新数据API,主键生成S08UpdateSample 6个例子,更新数据S09JsonMappingSample 5个例子, json配置映射S10FetchSample 2个例子,关系映射S11BeetlFunctionSample 2个例子,自定义sql脚本的方法Sql-integration包含了spring等框架的单元测试例子
sql-spring 包含spring单库,多库单元测试sql-springboot 包含了springboot 单库,多库单元测试sql-jfinal 包含了jfinal单元测试sql-solon,包含了solon单元测试sql-act 包含了act框架单元测试本书大部分例子都来自sql-samples 或者单元测试
如果你想通过运行例子了解beetlsql后面的运行机制,可以在执行上面代码实例时候,同时在如下类尝试Debug断点
SchemaMetadataManager.initTable 获取表描述AbstractDBStyle.genXXX, dbStyle用来生成内置各种sql语句地方MarkdownClasspathLoader.querySQL 查询外部SQLMapperJava8Proxy.invoke, BeetlSQL 的mapper方法实现机制BaseSQLExecutor.select , 包含了查询语句内部执行的过程,参数封装,sql模板语句到sql语句,以及查询结果映射到POJODebugInterceptor.before sql语句输出到控制台ConnectionSource.getConn beetlsql如何通过上下文从数据库连接池中获取一个数据库连接。ClassAnnotation 构造函数,解析POJO类的注解作者介绍本名李家智,网名闲大赋,是国内Beetl,BeetlSQL等基础软件开源作者,工作了24年Java编程,算是国内最早的IT打工人,47岁。至今谨小慎微的还在一线熬开发。经常发表博客,技术,架构见解。
现定居北京西城,曾在一流的电信厂商,电信外企工作了头10年,也在一流的互联网电商,物联网工作了后来的10年,熟悉JavaEE,熟悉Spring,熟悉Java分布式架构
我的其他作品
Beetl 高性能模板引擎,广泛用于国内外公司,也作为很多开源技术框架的基础技术。
SpringBoot Plus,简单易用的,国内首个基于Spring Boot的后台系统框架。目前没有精力维护,但可以作为学习springboot框架的入门开发平台
SpringBoot BBS ,简单安全的Java BBS。
电子工业出版社《Java系统性能优化实战》,来自与多年Java系统稳定性,性能实践,电子版有470页内容。
电子工业出版社《Spring Boot 2 精髓》国内第一本Spring Boot2的书籍,畅销书
能有俩本正规出版社的畅销书,俩个流行开源的程序员,国内少有,目测就我一个人了
我的博客
http://ibeetl.com/