BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。完整项目的源码来源 技术支持一七九一七四三三八零

beatlsql 优点

开发效率

无需注解,自动使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量

数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型

SQL 模板基于Beetl实现,更容易写和调试,以及扩展

维护性

SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。

可以自动将sql文件映射为dao接口类

灵活直观的支持支持一对一,一对多,多对多关系映射而不引入复杂的OR Mapping概念和技术。

具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能

其他

内置支持主从数据库支持的开源工具

支持跨数据库平台,开发者所需工作减少到最小,目前跨数据库支持mysql,postgres,oracle,sqlserver,h2,sqllite,DB2.

引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>com.ibeetl</groupId><artifactId>beetl</artifactId><version>2.3.2</version></dependency><dependency><groupId>com.ibeetl</groupId><artifactId>beetlsql</artifactId><version>2.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.0.5</version></dependency>
复制代码

这几个依赖都是必须的。

整合阶段

由于springboot没有对 beatlsql的快速启动装配,所以需要我自己导入相关的bean,包括数据源,包扫描,事物管理器等。

在application加入以下代码:

@Bean(initMethod = "init", name = "beetlConfig")public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();ResourcePatternResolver patternResolver = ResourcePatternUtils.getResourcePatternResolver(new DefaultResourceLoader());try {// WebAppResourceLoader 配置root路径是关键WebAppResourceLoader webAppResourceLoader = new WebAppResourceLoader(patternResolver.getResource("classpath:/templates").getFile().getPath());beetlGroupUtilConfiguration.setResourceLoader(webAppResourceLoader);} catch (IOException e) {e.printStackTrace();}//读取配置文件信息return beetlGroupUtilConfiguration;}@Bean(name = "beetlViewResolver")public BeetlSpringViewResolver getBeetlSpringViewResolver(@Qualifier("beetlConfig") BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");beetlSpringViewResolver.setOrder(0);beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);return beetlSpringViewResolver;}//配置包扫描@Bean(name = "beetlSqlScannerConfigurer")public BeetlSqlScannerConfigurer getBeetlSqlScannerConfigurer() {BeetlSqlScannerConfigurer conf = new BeetlSqlScannerConfigurer();conf.setBasePackage("com.forezp.dao");conf.setDaoSuffix("Dao");conf.setSqlManagerFactoryBeanName("sqlManagerFactoryBean");return conf;}@Bean(name = "sqlManagerFactoryBean")@Primarypublic SqlManagerFactoryBean getSqlManagerFactoryBean(@Qualifier("datasource") DataSource datasource) {SqlManagerFactoryBean factory = new SqlManagerFactoryBean();BeetlSqlDataSource source = new BeetlSqlDataSource();source.setMasterSource(datasource);factory.setCs(source);factory.setDbStyle(new MySqlStyle());factory.setInterceptors(new Interceptor[]{new DebugInterceptor()});factory.setNc(new UnderlinedNameConversion());//开启驼峰factory.setSqlLoader(new ClasspathLoader("/sql"));//sql文件路径return factory;}//配置数据库@Bean(name = "datasource")public DataSource getDataSource() {return DataSourceBuilder.create().url("jdbc:mysql://127.0.0.1:3306/test").username("root").password("123456").build();}//开启事务@Bean(name = "txManager")public DataSourceTransactionManager getDataSourceTransactionManager(@Qualifier("datasource") DataSource datasource) {DataSourceTransactionManager dsm = new DataSourceTransactionManager();dsm.setDataSource(datasource);return dsm;}
复制代码

在resouces包下,加META_INF文件夹,文件夹中加入spring-devtools.properties:

restart.include.beetl=/beetl-2.3.2.jar
restart.include.beetlsql=/beetlsql-2.3.1.jar
复制代码

在templates下加一个index.btl文件。

加入jar和配置beatlsql的这些bean,以及resources这些配置之后,springboot就能够访问到数据库类。

举个restful的例子

初始化数据库的表

# DROP TABLE `account` IF EXISTS
CREATE TABLE `account` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,`money` double DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `account` VALUES ('1', 'aaa', '1000');
INSERT INTO `account` VALUES ('2', 'bbb', '1000');
INSERT INTO `account` VALUES ('3', 'ccc', '1000');
bean
public class Account {private int id ;private String name ;private double money;getter...setter...}
复制代码

数据访问dao层

public interface AccountDao extends BaseMapper<Account> {@SqlStatement(params = "name")Account selectAccountByName(String name);
}
复制代码

接口继承BaseMapper,就能获取单表查询的一些性质,当你需要自定义sql的时候,只需要在resouses/sql/account.md文件下书写文件:

selectAccountByName
===
*根据name获accountselect * from account where name= #name#
复制代码

其中“=== ”上面是唯一标识,对应于接口的方法名,“* ”后面是注释,在下面就是自定义的sql语句,具体的见官方文档。

转载于:https://juejin.im/post/5c7dd96be51d4539171240ab

企业SpringBoot 教程(五)springboot整合beatlsql相关推荐

  1. SpringBoot(五)整合Mybatis-Plus

    整合Mybatis-Plus 导入依赖 <!--mybatis-plus启动器--> <dependency><groupId>com.baomidou</g ...

  2. idal 创建springboot 项目_手把手的SpringBoot教程,SpringBoot创建web项目(四)

    在实际的开发过程中,我们需要前端页面向Java端提交请求,这些请求一般分为get方式和post方式,不管是哪一种方式,一般都会携带一些参数.这一节,我们来演示一下如何给Controller传递参数. ...

  3. SpringBoot教程(十一) | SpringBoot集成Mybatis

    上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...

  4. SpringBoot教程(二)|SpringBoot项目配置数据库

    1.导入依赖 搭建是Springboot可以看我上一篇  使用maven搭建Springboot 在pom.xml中添加mysql连接需要的依赖 <dependency><group ...

  5. 【SpringBoot教程】SpringBoot开发HTTP接口GET请求实战

    ⛪ 专栏地址 系列教程更新中

  6. 通俗易懂的SpringBoot教程---day2---Springboot配置文件

    通俗易懂的SpringBoot教程-day2-Springboot配置文件 1.配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的: •application.propertie ...

  7. 非常详细的FastDFS整合springBoot教程-带文件下载地址

    FastDFS整合springBoot教程 编写该教程的目的 本教程基于已有的springBoot框架进行整合,springBoot构架部分不做教学 为了给自己做笔记,同时为所需童鞋少爬点坑. 目录 ...

  8. 视频教程- 19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合-Java

    19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有nod ...

  9. springboot整合 beatlsql

    springboot整合 beatlsql 转载https://blog.csdn.net/forezp/article/details/70662983 BeetSql是一个全功能DAO工具, 同时 ...

  10. springboot整合oracle_SpringBoot2.x系列教程67--Spring Boot整合分布式事务简介

    SpringBoot2.x系列教程67--Spring Boot整合分布式事务简介 作者:一一哥 一. 分布式事务简介 1. 什么是分布式事务 百度百科对分布式事务的解释如下: 分布式事务就是指事务的 ...

最新文章

  1. Android代码实现APK文件的安装与卸载
  2. 【巧妙算法系列】【Uva 11464】 - Even Parity 偶数矩阵
  3. hdu2155 小黑的镇魂曲(dp)
  4. 关于如何根据UI的版本把Tab切换成新的Notes UI Component
  5. 一道3G门户的面试题 (Java)
  6. 我认真写下9段如翔一般的代码,只为等你来品鉴
  7. 机器学习SVD【二】
  8. 免堆期由谁申请_谈谈离婚冷静期
  9. ASP.NET File.Delete只读文件引起的访问被拒绝,设置文件属性为Normal
  10. 记录一些js面试题以及解法
  11. 容器技术Docker K8s 32 容器服务ACK基础与进阶-弹性伸缩
  12. CSDN企业账户用户手册操作文档
  13. 用matlab求解二元二次方程组的方法
  14. erpc Linux 本地环境的搭建和使用
  15. 计算机属于电器还是学习用品,大学生必备的3件学习用品,学生表示:很实用!...
  16. 统计思维-程序员数学之概率统计_源代码
  17. uniapp返回上一页,刷新列表
  18. VUE3 子传父 父传子 双向传递
  19. 目前住院病人主要由护士护理这样做不仅需要大量护士而且由子不能随时观察危重病人的病情变化还可能会延误抢救时机.某医院打算开发-个以计算机为中心的患者监护系统试写出问题定义并且分析开发这个系统的可行性.
  20. 【思考】人脸认证真的准确吗?通过身份证的人脸对比有哪些问题?

热门文章

  1. oracle批量update 转
  2. 给ListView视图添加行号
  3. Windows Phone 7 有损 缩略图的生成!
  4. windows2003路由和远程访问 试图连接到数据存储时出错
  5. java odjc ResultSet 的使用详解
  6. Apache不支持加密的密钥
  7. ORACLE expdp/impdp导出实例
  8. git log控制输出宽度
  9. 浏览器中打开IOS应用并传参
  10. kingdee kis