From f6e2fe5335868b05fc8d8551738cc15062ea76d7 Mon Sep 17 00:00:00 2001
From: "Yangkai.Shen" <237497819@qq.com>
Date: Wed, 14 Nov 2018 17:22:15 +0800
Subject: [PATCH] =?UTF-8?q?:hankey:=20spring-boot-demo-orm-beetlsql=20?=
=?UTF-8?q?=E4=BB=8D=E7=84=B6=E5=AD=98=E5=9C=A8=E9=97=AE=E9=A2=98=EF=BC=8C?=
=?UTF-8?q?beetl-sql-starter=20=E6=95=B4=E5=90=88=E5=A4=B1=E8=B4=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
spring-boot-demo-orm-beetlsql/README.md | 3 +
spring-boot-demo-orm-beetlsql/pom.xml | 28 ++++++
.../SpringBootDemoOrmBeetlsqlApplication.java | 13 +++
.../orm/beetlsql/config/BeetlConfig.java | 35 +++++++
.../xkcoding/orm/beetlsql/dao/UserDao.java | 23 +++++
.../xkcoding/orm/beetlsql/entity/User.java | 80 +++++++++++++++
.../orm/beetlsql/service/UserService.java | 66 +++++++++++++
.../service/impl/UserServiceImpl.java | 99 +++++++++++++++++++
.../src/main/resources/application.properties | 0
.../src/main/resources/application.yml | 31 ++++++
.../src/main/resources/db/data.sql | 2 +
.../src/main/resources/db/schema.sql | 13 +++
.../service/impl/UserServiceImplTest.java | 56 +++++++++++
13 files changed, 449 insertions(+)
create mode 100644 spring-boot-demo-orm-beetlsql/README.md
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/dao/UserDao.java
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/entity/User.java
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/UserService.java
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImpl.java
delete mode 100644 spring-boot-demo-orm-beetlsql/src/main/resources/application.properties
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/resources/application.yml
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/resources/db/data.sql
create mode 100644 spring-boot-demo-orm-beetlsql/src/main/resources/db/schema.sql
create mode 100644 spring-boot-demo-orm-beetlsql/src/test/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImplTest.java
diff --git a/spring-boot-demo-orm-beetlsql/README.md b/spring-boot-demo-orm-beetlsql/README.md
new file mode 100644
index 0000000..06fd0e2
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/README.md
@@ -0,0 +1,3 @@
+# spring-boot-demo-orm-beetlsql
+
+> 此 demo 仍然存在问题
\ No newline at end of file
diff --git a/spring-boot-demo-orm-beetlsql/pom.xml b/spring-boot-demo-orm-beetlsql/pom.xml
index 8fa165a..5ee1974 100644
--- a/spring-boot-demo-orm-beetlsql/pom.xml
+++ b/spring-boot-demo-orm-beetlsql/pom.xml
@@ -20,6 +20,7 @@
UTF-8
UTF-8
1.8
+ 1.1.68.RELEASE
@@ -28,11 +29,38 @@
spring-boot-starter
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ com.ibeetl
+ beetl-framework-starter
+ ${ibeetl.version}
+
+
org.springframework.boot
spring-boot-starter-test
test
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ cn.hutool
+ hutool-all
+
+
+
+ org.projectlombok
+ lombok
+ true
+
diff --git a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/SpringBootDemoOrmBeetlsqlApplication.java b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/SpringBootDemoOrmBeetlsqlApplication.java
index 884d778..825efe6 100644
--- a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/SpringBootDemoOrmBeetlsqlApplication.java
+++ b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/SpringBootDemoOrmBeetlsqlApplication.java
@@ -3,6 +3,19 @@ package com.xkcoding.orm.beetlsql;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+/**
+ *
+ * 启动类
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql
+ * @description: 启动类
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 15:47
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
@SpringBootApplication
public class SpringBootDemoOrmBeetlsqlApplication {
diff --git a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java
new file mode 100644
index 0000000..f87c129
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/config/BeetlConfig.java
@@ -0,0 +1,35 @@
+package com.xkcoding.orm.beetlsql.config;
+
+import com.zaxxer.hikari.HikariDataSource;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+
+import javax.sql.DataSource;
+
+/**
+ *
+ * Beetl数据源配置
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql.config
+ * @description: Beetl数据源配置
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 17:15
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
+@Configuration
+public class BeetlConfig {
+
+ @Bean(name = "datasource")
+ public DataSource getDataSource(Environment env){
+ HikariDataSource dataSource = new HikariDataSource();
+ dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
+ dataSource.setJdbcUrl(env.getProperty("spring.datasource.url"));
+ dataSource.setUsername(env.getProperty("spring.datasource.username"));
+ dataSource.setPassword(env.getProperty("spring.datasource.password"));
+ return dataSource;
+ }
+}
diff --git a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/dao/UserDao.java b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/dao/UserDao.java
new file mode 100644
index 0000000..63238d5
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/dao/UserDao.java
@@ -0,0 +1,23 @@
+package com.xkcoding.orm.beetlsql.dao;
+
+import com.xkcoding.orm.beetlsql.entity.User;
+import org.beetl.sql.core.mapper.BaseMapper;
+import org.springframework.stereotype.Component;
+
+/**
+ *
+ * UserDao
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql.dao
+ * @description: UserDao
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 16:18
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
+@Component
+public interface UserDao extends BaseMapper {
+
+}
diff --git a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/entity/User.java b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/entity/User.java
new file mode 100644
index 0000000..04cea60
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/entity/User.java
@@ -0,0 +1,80 @@
+package com.xkcoding.orm.beetlsql.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ * 用户实体类
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql.entity
+ * @description: 用户实体类
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 16:06
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class User implements Serializable {
+ private static final long serialVersionUID = -1840831686851699943L;
+
+ /**
+ * 主键
+ */
+ private Long id;
+
+ /**
+ * 用户名
+ */
+ private String name;
+
+ /**
+ * 加密后的密码
+ */
+ private String password;
+
+ /**
+ * 加密使用的盐
+ */
+ private String salt;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 手机号码
+ */
+ private String phoneNumber;
+
+ /**
+ * 状态,-1:逻辑删除,0:禁用,1:启用
+ */
+ private Integer status;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 上次登录时间
+ */
+ private Date lastLoginTime;
+
+ /**
+ * 上次更新时间
+ */
+ private Date lastUpdateTime;
+}
diff --git a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/UserService.java b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/UserService.java
new file mode 100644
index 0000000..76d8c9a
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/UserService.java
@@ -0,0 +1,66 @@
+package com.xkcoding.orm.beetlsql.service;
+
+import com.xkcoding.orm.beetlsql.entity.User;
+
+import java.util.List;
+
+/**
+ *
+ * User Service
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql.service
+ * @description: User Service
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 16:18
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
+public interface UserService {
+ /**
+ * 新增用户
+ *
+ * @param user 用户
+ */
+ void saveUser(User user);
+
+ /**
+ * 根据主键删除用户
+ *
+ * @param id 主键
+ */
+ void deleteUser(Long id);
+
+ /**
+ * 更新用户
+ *
+ * @param user 用户
+ * @return 更新后的用户
+ */
+ User updateUser(User user);
+
+ /**
+ * 查询单个用户
+ *
+ * @param id 主键id
+ * @return 用户信息
+ */
+ User getUser(Long id);
+
+ /**
+ * 查询用户列表
+ *
+ * @return 用户列表
+ */
+ List getUserList();
+
+ /**
+ * 分页查询
+ *
+ * @param currentPage 当前页
+ * @param pageSize 每页条数
+ * @return 分页用户列表
+ */
+ List getUserByPage(Integer currentPage, Integer pageSize);
+}
diff --git a/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImpl.java b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..e794ea8
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImpl.java
@@ -0,0 +1,99 @@
+package com.xkcoding.orm.beetlsql.service.impl;
+
+import com.xkcoding.orm.beetlsql.dao.UserDao;
+import com.xkcoding.orm.beetlsql.entity.User;
+import com.xkcoding.orm.beetlsql.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *
+ * User Service
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql.service.impl
+ * @description: User Service
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 16:28
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
+@Service
+@Slf4j
+public class UserServiceImpl implements UserService {
+
+ private final UserDao userDao;
+
+ @Autowired
+ public UserServiceImpl(UserDao userDao) {
+ this.userDao = userDao;
+ }
+
+ /**
+ * 新增用户
+ *
+ * @param user 用户
+ */
+ @Override
+ public void saveUser(User user) {
+
+ }
+
+ /**
+ * 根据主键删除用户
+ *
+ * @param id 主键
+ */
+ @Override
+ public void deleteUser(Long id) {
+
+ }
+
+ /**
+ * 更新用户
+ *
+ * @param user 用户
+ * @return 更新后的用户
+ */
+ @Override
+ public User updateUser(User user) {
+ return null;
+ }
+
+ /**
+ * 查询单个用户
+ *
+ * @param id 主键id
+ * @return 用户信息
+ */
+ @Override
+ public User getUser(Long id) {
+ return userDao.single(id);
+ }
+
+ /**
+ * 查询用户列表
+ *
+ * @return 用户列表
+ */
+ @Override
+ public List getUserList() {
+ return null;
+ }
+
+ /**
+ * 分页查询
+ *
+ * @param currentPage 当前页
+ * @param pageSize 每页条数
+ * @return 分页用户列表
+ */
+ @Override
+ public List getUserByPage(Integer currentPage, Integer pageSize) {
+ return null;
+ }
+}
diff --git a/spring-boot-demo-orm-beetlsql/src/main/resources/application.properties b/spring-boot-demo-orm-beetlsql/src/main/resources/application.properties
deleted file mode 100644
index e69de29..0000000
diff --git a/spring-boot-demo-orm-beetlsql/src/main/resources/application.yml b/spring-boot-demo-orm-beetlsql/src/main/resources/application.yml
new file mode 100644
index 0000000..29d5418
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/resources/application.yml
@@ -0,0 +1,31 @@
+spring:
+ datasource:
+ url: jdbc:mysql://127.0.0.1:3306/spring-boot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
+ username: root
+ password: root
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ type: com.zaxxer.hikari.HikariDataSource
+ initialization-mode: always
+ continue-on-error: true
+ schema:
+ - "classpath:db/schema.sql"
+ data:
+ - "classpath:db/data.sql"
+ hikari:
+ minimum-idle: 5
+ connection-test-query: SELECT 1 FROM DUAL
+ maximum-pool-size: 20
+ auto-commit: true
+ idle-timeout: 30000
+ pool-name: SpringBootDemoHikariCP
+ max-lifetime: 60000
+ connection-timeout: 30000
+logging:
+ level:
+ com.xkcoding: debug
+ com.xkcoding.orm.beetlsql: trace
+beetl:
+ enabled: false
+beetlsql:
+ daoSuffix: Dao
+ basePackage: com.xkcoding.orm.beetlsql.dao
\ No newline at end of file
diff --git a/spring-boot-demo-orm-beetlsql/src/main/resources/db/data.sql b/spring-boot-demo-orm-beetlsql/src/main/resources/db/data.sql
new file mode 100644
index 0000000..3ab2b59
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/resources/db/data.sql
@@ -0,0 +1,2 @@
+INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (1, 'user_1', 'ff342e862e7c3285cdc07e56d6b8973b', '412365a109674b2dbb1981ed561a4c70', 'user1@xkcoding.com', '17300000001');
+INSERT INTO `orm_user`(`id`,`name`,`password`,`salt`,`email`,`phone_number`) VALUES (2, 'user_2', '6c6bf02c8d5d3d128f34b1700cb1e32c', 'fcbdd0e8a9404a5585ea4e01d0e4d7a0', 'user2@xkcoding.com', '17300000002');
\ No newline at end of file
diff --git a/spring-boot-demo-orm-beetlsql/src/main/resources/db/schema.sql b/spring-boot-demo-orm-beetlsql/src/main/resources/db/schema.sql
new file mode 100644
index 0000000..22804e5
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/main/resources/db/schema.sql
@@ -0,0 +1,13 @@
+DROP TABLE IF EXISTS `orm_user`;
+CREATE TABLE `orm_user` (
+ `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
+ `name` VARCHAR(32) NOT NULL UNIQUE COMMENT '用户名',
+ `password` VARCHAR(32) NOT NULL COMMENT '加密后的密码',
+ `salt` VARCHAR(32) NOT NULL COMMENT '加密使用的盐',
+ `email` VARCHAR(32) NOT NULL UNIQUE COMMENT '邮箱',
+ `phone_number` VARCHAR(15) NOT NULL UNIQUE COMMENT '手机号码',
+ `status` INT(2) NOT NULL DEFAULT 1 COMMENT '状态,-1:逻辑删除,0:禁用,1:启用',
+ `create_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '创建时间',
+ `last_login_time` DATETIME DEFAULT NULL COMMENT '上次登录时间',
+ `last_update_time` DATETIME NOT NULL DEFAULT NOW() COMMENT '上次更新时间'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Spring Boot Demo Orm 系列示例表';
diff --git a/spring-boot-demo-orm-beetlsql/src/test/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImplTest.java b/spring-boot-demo-orm-beetlsql/src/test/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImplTest.java
new file mode 100644
index 0000000..b798bdf
--- /dev/null
+++ b/spring-boot-demo-orm-beetlsql/src/test/java/com/xkcoding/orm/beetlsql/service/impl/UserServiceImplTest.java
@@ -0,0 +1,56 @@
+package com.xkcoding.orm.beetlsql.service.impl;
+
+import com.xkcoding.orm.beetlsql.SpringBootDemoOrmBeetlsqlApplicationTests;
+import com.xkcoding.orm.beetlsql.entity.User;
+import com.xkcoding.orm.beetlsql.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.beetl.sql.core.SQLManager;
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ *
+ * User Service测试
+ *
+ *
+ * @package: com.xkcoding.orm.beetlsql.service.impl
+ * @description: User Service测试
+ * @author: yangkai.shen
+ * @date: Created in 2018/11/14 16:30
+ * @copyright: Copyright (c) 2018
+ * @version: V1.0
+ * @modified: yangkai.shen
+ */
+@Slf4j
+public class UserServiceImplTest extends SpringBootDemoOrmBeetlsqlApplicationTests {
+ @Autowired
+ private UserService userService;
+
+ @Test
+ public void saveUser() {
+ }
+
+ @Test
+ public void deleteUser() {
+ }
+
+ @Test
+ public void updateUser() {
+ }
+
+ @Test
+ public void getUser() {
+ User user = userService.getUser(1L);
+ Assert.assertNotNull(user);
+ log.debug("【user】= {}", user);
+ }
+
+ @Test
+ public void getUserList() {
+ }
+
+ @Test
+ public void getUserByPage() {
+ }
+}
\ No newline at end of file