# BeetlSQL 3 指南 ## 数据访问框架 BeetlSQL的目标是提供开发敏捷,维护便捷,运行高速的数据库访问框架,在一个系统多个库的情况下,提供一致的编写代码方式。支持如下数据平台 * 传统数据库:MySQL,MariaDB,Oralce,Postgres,DB2,SQL Server,H2,SQLite,Derby,神通,达梦,华为高斯,人大金仓,PolarDB等 * 大数据:HBase,ClickHouse,Cassandar,Hive * 物联网时序数据库:Machbase,TD-Engine,IotDB * SQL查询引擎:Drill,Presto,Druid * 内存数据库:ignite,CouchBase BeetlSQL 不仅仅是简单的类似MyBatis或者是Hibernate,或者是两者的综合,BeetlSQL目的是对标甚至超越Spring Data,是实现数据访问统一的框架,无论是传统数据库,还是大数据,还是查询引擎或者时序库,内存数据库。 ## 适合用户 * 你不想把精力浪费在简单据库增删改查上?BeetlSQL 内置数据库的CRUD功能 * 你是属于以SQL为中心的程序员派别。BeetlSQL提供了较好的SQL管理,以及内置大量SQL * 你是对代码可维护性有高要求的架构师?BeetlSQL的设计目的就是尽可能提高数据库访问代码可维护性 * 平台级产品需要跨库,支持各种客户数据库的?BeetlSQL 支持各种库,程序员编写一次,能运行到各种数据库 * 系统需要连接多种库,比如连接商品库,连接订单库,或者设备基本信息在MySQL,设备数据在Clickhouse里。BeetlSQL很容易支持各种库,并能一统一的方式使用 * 系统初期单库单表,长期需要多库多表?BeetlSQL很容易实现多库多表而不需要程序员过多关注。 如果你对BeetlSQL3不了解,建议先看《了解特性》章节。看看BeetlSQL3的功能和代码风格你是否喜欢。如果喜欢,可以阅读《快速开始》动手实践,或者《SpringBoot 快速开始》。 ## 编译源码 ```java git clone https://gitee.com/xiandafu/beetlsql mvn clean package mvn clean install #如果想修改源码 ``` 注意:BeetlSQL3 集成了Spring,以及支持大数据等, 就算配置了国内镜像,也可能需要很长时间下载大数据依赖包,为了让编译快速通过,你需要进入pom.xml ,屏蔽sql-integration,sql-db-support,sql-jmh三个模块 ```xml <modules> <!--核心功能 --> <module>sql-core</module> <module>sql-mapper</module> <module>sql-util</module> <module>sql-fetech</module> <!-- 打包到一起 --> <module>beetlsql</module> <module>sql-gen</module> <module>sql-test</module> <module>sql-samples</module> <!-- 集成和扩展太多的数据库,可以被屏蔽,以加速项目下载jar --> <!-- <module>sql-integration</module>--> <!-- <module>sql-jmh</module>--> <!-- <module>sql-db-support</module>--> </modules> ``` ## 直接看代码 如果项目编译通过,那可以直接运行单元测试或者samples模块的实例代码 * sql-test包含了单元测试,有60+单元测试方法,采用了H2数据库,数据脚本是`db-init.sql`因此可以直接运行任何一个单元测试方法. * sql-samples 又包含了三个模块大约100个例子,所有例子也采用了H2数据库,可以直接使用。 * quickstart: BeetlSQL基础使用例子,可以快速了解BeetlSQL3 * usage: BeetlSQL所有API和功能 * plugin:BeetlSQL高级扩展实例 以usage模块为例子,包含如下代码 * S01MapperSelectSample 15个例子, mapper中的查询演示 * S02MapperUpdateSample 11个例子, mapper中更新操作 * S03MapperPageSample 3个例子,mapper中的翻页查询 * S04QuerySample 9个例子,Query查询 * S05QueryUpdateSample 3个例子,Query完成update操作 * S06SelectSample 14个例子,SQLManager 查询API * S07InsertSample 8个例子,SQLManager 插入新数据API,主键生成 * S08UpdateSample 6个例子,更新数据 * S09JsonMappingSample 5个例子, json配置映射 * S10FetchSample 2个例子,关系映射 * S11BeetlFunctionSample 2个例子,自定义sql脚本的方法 > 本书大部分例子都来自sql-samples ## 作者介绍 李家智,网名闲大赋,是国内Beetl,BeetlSQL等基础软件开源作者,工作了20年Java编程,至今还在一线开发。经常发表博客,技术见解。 现定居北京,曾在一流的电信厂商,外企干过,也在一流的互联网电商干过,熟悉JavaEE,熟悉Spring,熟悉分布式. 我的其他作品 * Beetl 高性能模板引擎,广泛用于国内外公司。 * SpringBoot Plus,简单易用的,国内首个基于Spring Boot的后台系统框架 * SpringBoot BBS ,简单安全的Java BBS。 * 电子工业出版社《Java系统性能优化实战》,来自与多年Java性能实践,没有调优不了的Java系统, * 电子工业出版社《Spring Boot 2 精髓》国内第一本Spring Boot2的书籍,畅销书,配套电子更新版本也在