springBoot整合BeetlSQL

springBoot整合BeetlSQL

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

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

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

整合步骤如下:

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

1<dependency> 2 <groupId>mysql</groupId> 3 <artifactId>mysql-connector-java</artifactId> 4</dependency> 5 6<!--beetlsql-->由于本次采用BeetlSQL操作数据库,故配置一下两项 7<dependency> 8 <groupId>com.ibeetl</groupId> 9 <artifactId>beetl-framework-starter</artifactId> 10 <version>1.1.35.RELEASE</version> 11</dependency> 12<dependency> 13 <groupId>com.ibeetl</groupId> 14 <artifactId>beetlsql</artifactId> 15 <version>2.10.10</version> 16</dependency> 17 18<!-- alibaba的druid数据库连接池 --> 19<dependency> 20 <groupId>com.alibaba</groupId> 21 <artifactId>druid-spring-boot-starter</artifactId> 22 <version>1.1.0</version> 23</dependency>

1.2 application.yml配置

1#程序端口 2server: 3 context-path: /springBoot 4 port: 8089 5 6#数据源配置 7spring: 8 datasource: 9 name: blog 10 url: jdbc:mysql://127.0.0.1:3306/blog?useUnicode=true&characterEncoding=utf8&useSSL=false 11 username: root 12 password: 123456 13 # password: cY+qV/UGnuFJ/qBQDppj++1hxX1buy+NlXWww== 14 # 使用druid数据源 15 type: com.alibaba.druid.pool.DruidDataSource 16 driver-class-name: com.mysql.jdbc.Driver 17 #filters: stat,config 18 filters: stat 19 maxActive: 20 20 initialSize: 1 21 maxWait: 60000 22 minIdle: 1 23 timeBetweenEvictionRunsMillis: 60000 24 minEvictableIdleTimeMillis: 300000 25 validationQuery: select 'x' 26 testWhileIdle: true 27 testOnBorrow: false 28 testOnReturn: false 29 poolPreparedStatements: true 30 maxOpenPreparedStatements: 20 31 32 33#hibernate配置这项 34#spring: 35 #jpa: 36 #properties: 37 #hibernate: 38 #hbm2ddl: 39 #auto:update//更新数据表 40 #auto=create//启动项目删除原有表新建表 41 42#mybatis配置以下两项 43# mapper-locations: 44 #classpath:com.zlk.dao/*.xml //数据库操作层,xml 45 46# type-aliases-package: com.zlk.model //数据库实体层

1.3 数据库

1数据库名称:blog, 2创建表:CREATE TABLE `b_user` ( 3 `USER_ID` int(11) NOT NULL AUTO_INCREMENT, 4 `USER_NAME` varchar(225) NOT NULL, 5 `PASSWORD` varchar(100) NOT NULL, 6 `LEVEL` varchar(100) DEFAULT NULL, 7 `PHONE` varchar(20) DEFAULT NULL, 8 `EMAIL` varchar(50) DEFAULT NULL, 9 `PROFESSIONAL` varchar(150) DEFAULT NULL, 10 `MAJOR` varchar(225) DEFAULT NULL, 11 `SCHOOL` varchar(225) DEFAULT NULL, 12 `CREATE_TIME` varchar(19) DEFAULT NULL, 13 PRIMARY KEY (`USER_ID`), 14 UNIQUE KEY `USER_NAME` (`USER_NAME`) 15 ) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8;

1.4 java部分

项目结构图

1)model层

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

2)dao层

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

3)service层

1/** 2 * desc: 3 * 4 * @author zhoulk 5 * Date: 2018/7/18. 6 */ 7@Service("userService") 8public class UserService { 9 10 @Autowired 11 private UserDao userDao; 12 13 public List<BUser> userList() { 14 return userDao.all(); 15 } 16 17 public List<BUser> allUser() { 18 return userDao.allUser(); 19 } 20 21}

4)测试类

1/** 2 * desc:用户业务类测试 3 * 4 * @author zhoulk 5 * Date: 2018/7/18. 6 */ 7@RunWith(SpringRunner.class) 8@SpringBootTest 9public class UserServiceTest { 10 11 @Autowired 12 private UserService userService; 13 14 @Test 15 public void userListTest(){ 16 List<BUser> userList = userService.userList(); 17 Assert.notNull(userList,"null"); 18 } 19 20 @Test 21 public void allUserTest(){ 22 List<BUser> userList = userService.allUser(); 23 Assert.notNull(userList,"null"); 24 } 25 26}

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

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

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

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

1@SpringBootApplication 2@ImportResource(locations = "classpath*:/*.sql") 3public class DemoApplication { 4 5 public static void main(String[] args) { 6 SpringApplication.run(DemoApplication.class, args); 7 } 8}

1.5 总结

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

附:完整pom

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>com</groupId> 7 <artifactId>demo</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <name>demo</name> 12 <description>Demo project for Spring Boot Exercise</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>1.5.10.RELEASE</version> 18 <relativePath/> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-data-jpa</artifactId> 31 </dependency> 32 <dependency> 33 <groupId>org.springframework.boot</groupId> 34 <artifactId>spring-boot-starter-web</artifactId> 35 </dependency> 36 37 <dependency> 38 <groupId>org.springframework.boot</groupId> 39 <artifactId>spring-boot-starter-test</artifactId> 40 <scope>test</scope> 41 </dependency> 42 43 <dependency> 44 <groupId>mysql</groupId> 45 <artifactId>mysql-connector-java</artifactId> 46 </dependency> 47 48 49 <!--beetlsql--> 50 <dependency> 51 <groupId>com.ibeetl</groupId> 52 <artifactId>beetl-framework-starter</artifactId> 53 <version>1.1.35.RELEASE</version> 54 </dependency> 55 <dependency> 56 <groupId>com.ibeetl</groupId> 57 <artifactId>beetlsql</artifactId> 58 <version>2.10.10</version> 59 </dependency> 60 61 <!-- alibaba的druid数据库连接池 --> 62 <dependency> 63 <groupId>com.alibaba</groupId> 64 <artifactId>druid-spring-boot-starter</artifactId> 65 <version>1.1.0</version> 66 </dependency> 67 68 <!--junit测试--> 69 <dependency> 70 <groupId>org.springframework</groupId> 71 <artifactId>spring-test</artifactId> 72 </dependency> 73 <dependency> 74 <groupId>junit</groupId> 75 <artifactId>junit</artifactId> 76 <version> 4.12</version> 77 </dependency> 78 79 <!--热部署--> 80 <dependency> 81 <groupId>org.springframework.boot</groupId> 82 <artifactId>spring-boot-devtools</artifactId> 83 <optional>true</optional> 84 </dependency> 85 86 <dependency> 87 <groupId>org.projectlombok</groupId> 88 <artifactId>lombok</artifactId> 89 <version>1.16.6</version> 90 </dependency> 91 92 </dependencies> 93 94 <build> 95 <plugins> 96 <plugin> 97 <groupId>org.springframework.boot</groupId> 98 <artifactId>spring-boot-maven-plugin</artifactId> 99 </plugin> 100 </plugins> 101 </build> 102 103</project>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

springboot+beetlsql+mysql整合

一、工程目录结构 !(https://oscimg.oschina.net/oscnet/316a2b26e8f95d6e47c9f2ec9c7b1c0637b.jpg)二、pom.xml文件配置<dependency<groupIdmysql</groupId<artifactIdmysqlconnector

BeetlSQL3.0.0

BeetlSQL3.0.0M5主要对Spring,SpringBoot,JFinal,Solon等框架进行集成,并新增ignite,CouchBase内存数据库的支持。M6计划对更多的国产数据库支持,内存和图数据库支持。以及发布BeetlSQL3的Idea插件。<dependency<groupIdcom.ibe

BeetlSQL 实现 ORMapping查询

我在 hibernate,mybatis,beetlsql全面比较(http://my.oschina.net/xiandafu/blog/617542) 中说明了BeetlSQL在开发效率,维护性,跨数据库(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Flib.csdn.ne