springBoot整合BeetlSQL

文章摘要:本文主要介绍springBoot整合BeetlSQL,以及BeetlSQL自定义sql使用。

注:本例中,数据库将使用mysql,数据源使用阿里数据源,数据库持久化采用BeetlSQL,由于个人原因暂时未加事务处理。

源码地址:https://github.com/zlk19921105/springbootexercise

整合步骤如下:

1.1 pom.xml文件中添加MySQL依赖,完整pom附于文章最后

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency><!--beetlsql-->由于本次采用BeetlSQL操作数据库,故配置一下两项
<dependency><groupId>com.ibeetl</groupId><artifactId>beetl-framework-starter</artifactId><version>1.1.35.RELEASE</version>
</dependency>
<dependency><groupId>com.ibeetl</groupId><artifactId>beetlsql</artifactId><version>2.10.10</version>
</dependency><!-- alibaba的druid数据库连接池 -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.0</version>
</dependency>

1.2 application.yml配置

#程序端口
server:context-path: /springBootport: 8089#数据源配置
spring:datasource:name: blogurl: jdbc:mysql://127.0.0.1:3306/blog?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: rootpassword: 123456# password: cY+qV/UGnuFJ/qBQDppj++1hxX1buy+NlXWww==# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driver#filters: stat,configfilters: statmaxActive: 20initialSize: 1maxWait: 60000minIdle: 1timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: select 'x'testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truemaxOpenPreparedStatements: 20#hibernate配置这项
#spring:#jpa:#properties:#hibernate:#hbm2ddl:#auto:update//更新数据表#auto=create//启动项目删除原有表新建表#mybatis配置以下两项
#  mapper-locations:#classpath:com.zlk.dao/*.xml //数据库操作层,xml#  type-aliases-package: com.zlk.model     //数据库实体层

1.3 数据库

数据库名称:blog,
创建表:CREATE TABLE `b_user` (`USER_ID` int(11) NOT NULL AUTO_INCREMENT,`USER_NAME` varchar(225) NOT NULL,`PASSWORD` varchar(100) NOT NULL,`LEVEL` varchar(100) DEFAULT NULL,`PHONE` varchar(20) DEFAULT NULL,`EMAIL` varchar(50) DEFAULT NULL,`PROFESSIONAL` varchar(150) DEFAULT NULL,`MAJOR` varchar(225) DEFAULT NULL,`SCHOOL` varchar(225) DEFAULT NULL,`CREATE_TIME` varchar(19) DEFAULT NULL,PRIMARY KEY (`USER_ID`),UNIQUE KEY `USER_NAME` (`USER_NAME`)) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8;

1.4 java部分

项目结构图

1)model层

/**用户实体类,类名称与字段名称要与数据库表名一致。也可以自定义xml取别名使用* @author zhoulk*         Date:  2018/4/4.*/
@Getter @Setter @ToString
public class BUser implements Serializable {/**用户编号*/private Long userId;/**用户名*/private String userName;/**密码*/private String password;/**联系电话*/private String phone;
}

2)dao层

/*** desc:用户dao接口,继承BaseMapper接口** @author zhoulk*         Date:  2018/7/18.*/
public interface UserDao extends BaseMapper<BUser> {//自定义方法,需要配置sql,见5)自定义sqlpublic List<BUser> allUser();
}

3)service层

/*** desc:** @author zhoulk*         Date:  2018/7/18.*/
@Service("userService")
public class UserService {@Autowiredprivate UserDao userDao;public List<BUser> userList() {return userDao.all();}public List<BUser> allUser() {return userDao.allUser();}}

4)自定义sql,bUser.sql文件

复杂SQL写在此处,sql文件命名规则与sql语法参考http://ibeetl.com/guide/beetlsql.html

allUser
===
select  `user_name` from `b_user` /*where  `config_flag`=#configFlag#*/

注:自定义sql文件时,需要加在sql文件,如下@ImportResource(locations = "classpath:/.sql")

@SpringBootApplication
@ImportResource(locations = "classpath*:/*.sql")
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

5)测试类

/*** desc:用户业务类测试** @author zhoulk*         Date:  2018/7/18.*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {@Autowiredprivate UserService userService;@Testpublic void userListTest(){List<BUser> userList = userService.userList();Assert.notNull(userList,"null");}@Testpublic void allUserTest(){List<BUser> userList = userService.allUser();Assert.notNull(userList,"null");}}

1.5 总结

BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。

附:完整pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>demo</name><description>Demo project for Spring Boot Exercise</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--beetlsql--><dependency><groupId>com.ibeetl</groupId><artifactId>beetl-framework-starter</artifactId><version>1.1.35.RELEASE</version></dependency><dependency><groupId>com.ibeetl</groupId><artifactId>beetlsql</artifactId><version>2.10.10</version></dependency><!-- alibaba的druid数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.0</version></dependency><!--junit测试--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version> 4.12</version></dependency><!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.6</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

springBoot整合beetlsql相关推荐

  1. springboot整合 beatlsql

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

  2. SpringBoot整合BeetlSql3.0及BeetlSql3.0快速入门说明

    一 SpringBoot整合BeetlSql3.0 1.1 加入依赖 <dependencies><dependency><groupId>org.springfr ...

  3. spring boot 整合 beetlSQL和 druid 多数据源

    整合beetlSQL和 druid 导入依赖 yml配置文件 config文件(生成数据源) Mapper接口文件(文件名称后缀必须和beetlsql.daoSuffix相同) md文件(文件名和@S ...

  4. SpringBoot第九篇: springboot整合Redis

    这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...

  5. es springboot 不设置id_原创 | 一篇解决Springboot 整合 Elasticsearch

    ElasticSearch 结合业务的场景,在目前的商品体系需要构建搜索服务,主要是为了提供用户更丰富的检索场景以及高速,实时及性能稳定的搜索服务. ElasticSearch是一个基于Lucene的 ...

  6. springboot整合shiro使用shiro-spring-boot-web-starter

    此文章仅仅说明在springboot整合shiro时的一些坑,并不是教程 增加依赖 <!-- 集成shiro依赖 --> <dependency><groupId> ...

  7. db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql的教程

    springboot整合MySQL很简单,多数据源就master,slave就行了,但是在整合DB2就需要另起一行,以下是同一个yml文件 先配置MySQL,代码如下 spring: datasour ...

  8. 九、springboot整合rabbitMQ

    springboot整合rabbitMQ 简介 rabbitMQ是部署最广泛的开源消息代理. rabbitMQ轻量级,易于在内部和云中部署. 它支持多种消息传递协议. RabbitMQ可以部署在分布式 ...

  9. 八、springboot整合Spring Security

    springboot整合Spring Security 简介 Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架.它是保护基于Spring的应用程序的事实标准. Spr ...

最新文章

  1. Jquery php 点击td变成input,修改后失去焦点发送数据
  2. Android应用开发-广播和服务
  3. 【RFID】基于MATLAB的RFID 系统的空中接口过程以及防碰撞算法仿真
  4. Java 运行时数据区域
  5. b超可以看出什么_【b超能检查出什么】b超能看出男女吗_b超能查出什么妇科病 - 妈妈网百科...
  6. DataList用法
  7. 【转】WebAPI ASP.Net 发布部署中常见的两个错误未能找到 CodeDom未能加载System.Web.WebPages.Razor
  8. html中的ppt文字不清晰,HTML页面的文字布局与文字效果.ppt
  9. Numpy Mathematical functions 数学函数
  10. C++中内存泄漏的检测方法介绍
  11. 男人动心的3种傻女孩[转载]
  12. sql数据库去重语法_浅谈sql数据库去重_MySQL
  13. ipad pythonista_iPad编程软件推荐(一) —— Pythonista 3
  14. html下拉菜单hover,css用hover制作下拉菜单
  15. 各个蒙版的作用与区别
  16. python实现雪花飘落效果_python实现雪花飘落效果实例讲解
  17. JavaScript通过extend和super实现继承
  18. ipad html兼容问题,如何处理ipad safari CSS 样式的兼容性?_html/css_WEB-ITnose
  19. 基于Java毕业设计政府采购线上招投标平台源码+系统+mysql+lw文档+部署软件
  20. Python+Cplex学习笔记(三)—— docplex官方示例之营养膳食选择

热门文章

  1. 什么是人工智能?AI、机器学习、深度学习的关系
  2. MySQL数据库基础知识7,查询的执行过程
  3. 怎么用代码自动点击_代码详解:用Mask R-CNN赋予自动驾驶汽车“火眼金睛”
  4. 戴尔linux u盘启动不了怎么办,u盘启动盘启动不了怎么回事_解决u盘启动盘启动不了的方法...
  5. LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视华为NVR摄像头无法注册到国标平台看不到设备的时候如何抓包及排查
  6. linux下运行comsol,COMSOL5.3在Linux下的安装
  7. 仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边
  8. 日常记录20191129
  9. [小说连载]张小庆,在路上(4)-从哪里开始呢
  10. 第34本:《暗时间》