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