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