@@ -1,3 +1,388 @@ | |||||
# spring-boot-demo-orm-beetlsql | # spring-boot-demo-orm-beetlsql | ||||
> 此 demo 仍然存在问题 | |||||
> 此 demo 主要演示了 Spring Boot 如何整合 beetl sql 快捷操作数据库,使用的是beetl官方提供的beetl-framework-starter集成。集成过程不是十分顺利,没有其他的orm框架集成的便捷。 | |||||
## pom.xml | |||||
```xml | |||||
<?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> | |||||
<artifactId>spring-boot-demo-orm-beetlsql</artifactId> | |||||
<version>1.0.0-SNAPSHOT</version> | |||||
<packaging>jar</packaging> | |||||
<name>spring-boot-demo-orm-beetlsql</name> | |||||
<description>Demo project for Spring Boot</description> | |||||
<parent> | |||||
<groupId>com.xkcoding</groupId> | |||||
<artifactId>spring-boot-demo</artifactId> | |||||
<version>1.0.0-SNAPSHOT</version> | |||||
</parent> | |||||
<properties> | |||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||||
<java.version>1.8</java.version> | |||||
<ibeetl.version>1.1.68.RELEASE</ibeetl.version> | |||||
</properties> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-starter</artifactId> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-starter-jdbc</artifactId> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>com.ibeetl</groupId> | |||||
<artifactId>beetl-framework-starter</artifactId> | |||||
<version>${ibeetl.version}</version> | |||||
</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> | |||||
<dependency> | |||||
<groupId>cn.hutool</groupId> | |||||
<artifactId>hutool-all</artifactId> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>com.google.guava</groupId> | |||||
<artifactId>guava</artifactId> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>org.projectlombok</groupId> | |||||
<artifactId>lombok</artifactId> | |||||
<optional>true</optional> | |||||
</dependency> | |||||
</dependencies> | |||||
<build> | |||||
<finalName>spring-boot-demo-orm-beetlsql</finalName> | |||||
<plugins> | |||||
<plugin> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-maven-plugin</artifactId> | |||||
</plugin> | |||||
</plugins> | |||||
</build> | |||||
</project> | |||||
``` | |||||
## application.yml | |||||
> 注意下方注释的地方,**不能解开注释,并且需要通过JavaConfig的方式手动配置数据源**,否则,会导致beetl启动失败,因此,初始化数据库的数据,只能手动在数据库使用 resources/db 下的建表语句和数据库初始化数据。 | |||||
```yaml | |||||
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 | |||||
#### beetlsql starter不能开启下面选项 | |||||
# 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: | |||||
enabled: true | |||||
sqlPath: /sql | |||||
daoSuffix: Dao | |||||
basePackage: com.xkcoding.orm.beetlsql.dao | |||||
dbStyle: org.beetl.sql.core.db.MySqlStyle | |||||
nameConversion: org.beetl.sql.core.UnderlinedNameConversion | |||||
beet-beetlsql: | |||||
dev: true | |||||
``` | |||||
## BeetlConfig.java | |||||
```java | |||||
/** | |||||
* <p> | |||||
* Beetl数据源配置 | |||||
* </p> | |||||
* | |||||
* @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 { | |||||
/** | |||||
* Beetl需要显示的配置数据源,方可启动项目,大坑,切记! | |||||
*/ | |||||
@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; | |||||
} | |||||
} | |||||
``` | |||||
## UserDao.java | |||||
```java | |||||
/** | |||||
* <p> | |||||
* UserDao | |||||
* </p> | |||||
* | |||||
* @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<User> { | |||||
} | |||||
``` | |||||
## UserServiceImpl.java | |||||
```java | |||||
/** | |||||
* <p> | |||||
* User Service | |||||
* </p> | |||||
* | |||||
* @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 User saveUser(User user) { | |||||
userDao.insert(user, true); | |||||
return user; | |||||
} | |||||
/** | |||||
* 批量插入用户 | |||||
* | |||||
* @param users 用户列表 | |||||
*/ | |||||
@Override | |||||
public void saveUserList(List<User> users) { | |||||
userDao.insertBatch(users); | |||||
} | |||||
/** | |||||
* 根据主键删除用户 | |||||
* | |||||
* @param id 主键 | |||||
*/ | |||||
@Override | |||||
public void deleteUser(Long id) { | |||||
userDao.deleteById(id); | |||||
} | |||||
/** | |||||
* 更新用户 | |||||
* | |||||
* @param user 用户 | |||||
* @return 更新后的用户 | |||||
*/ | |||||
@Override | |||||
public User updateUser(User user) { | |||||
if (ObjectUtil.isNull(user)) { | |||||
throw new RuntimeException("用户id不能为null"); | |||||
} | |||||
userDao.updateTemplateById(user); | |||||
return userDao.single(user.getId()); | |||||
} | |||||
/** | |||||
* 查询单个用户 | |||||
* | |||||
* @param id 主键id | |||||
* @return 用户信息 | |||||
*/ | |||||
@Override | |||||
public User getUser(Long id) { | |||||
return userDao.single(id); | |||||
} | |||||
/** | |||||
* 查询用户列表 | |||||
* | |||||
* @return 用户列表 | |||||
*/ | |||||
@Override | |||||
public List<User> getUserList() { | |||||
return userDao.all(); | |||||
} | |||||
/** | |||||
* 分页查询 | |||||
* | |||||
* @param currentPage 当前页 | |||||
* @param pageSize 每页条数 | |||||
* @return 分页用户列表 | |||||
*/ | |||||
@Override | |||||
public PageQuery<User> getUserByPage(Integer currentPage, Integer pageSize) { | |||||
return userDao.createLambdaQuery().page(currentPage, pageSize); | |||||
} | |||||
} | |||||
``` | |||||
## UserServiceImplTest.java | |||||
```java | |||||
/** | |||||
* <p> | |||||
* User Service测试 | |||||
* </p> | |||||
* | |||||
* @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() { | |||||
String salt = IdUtil.fastSimpleUUID(); | |||||
User user = User.builder().name("testSave3").password(SecureUtil.md5("123456" + salt)).salt(salt).email("testSave3@xkcoding.com").phoneNumber("17300000003").status(1).lastLoginTime(new DateTime()).createTime(new DateTime()).lastUpdateTime(new DateTime()).build(); | |||||
user = userService.saveUser(user); | |||||
Assert.assertTrue(ObjectUtil.isNotNull(user.getId())); | |||||
log.debug("【user】= {}", user); | |||||
} | |||||
@Test | |||||
public void saveUserList() { | |||||
List<User> users = Lists.newArrayList(); | |||||
for (int i = 5; i < 15; i++) { | |||||
String salt = IdUtil.fastSimpleUUID(); | |||||
User user = User.builder().name("testSave" + i).password(SecureUtil.md5("123456" + salt)).salt(salt).email("testSave" + i + "@xkcoding.com").phoneNumber("1730000000" + i).status(1).lastLoginTime(new DateTime()).createTime(new DateTime()).lastUpdateTime(new DateTime()).build(); | |||||
users.add(user); | |||||
} | |||||
userService.saveUserList(users); | |||||
Assert.assertTrue(userService.getUserList().size() > 2); | |||||
} | |||||
@Test | |||||
public void deleteUser() { | |||||
userService.deleteUser(1L); | |||||
User user = userService.getUser(1L); | |||||
Assert.assertTrue(ObjectUtil.isNull(user)); | |||||
} | |||||
@Test | |||||
public void updateUser() { | |||||
User user = userService.getUser(2L); | |||||
user.setName("beetlSql 修改后的名字"); | |||||
User update = userService.updateUser(user); | |||||
Assert.assertEquals("beetlSql 修改后的名字", update.getName()); | |||||
log.debug("【update】= {}", update); | |||||
} | |||||
@Test | |||||
public void getUser() { | |||||
User user = userService.getUser(1L); | |||||
Assert.assertNotNull(user); | |||||
log.debug("【user】= {}", user); | |||||
} | |||||
@Test | |||||
public void getUserList() { | |||||
List<User> userList = userService.getUserList(); | |||||
Assert.assertTrue(CollUtil.isNotEmpty(userList)); | |||||
log.debug("【userList】= {}", userList); | |||||
} | |||||
@Test | |||||
public void getUserByPage() { | |||||
List<User> userList = userService.getUserList(); | |||||
PageQuery<User> userByPage = userService.getUserByPage(1, 5); | |||||
Assert.assertEquals(5, userByPage.getList().size()); | |||||
Assert.assertEquals(userList.size(), userByPage.getTotalRow()); | |||||
log.debug("【userByPage】= {}", JSONUtil.toJsonStr(userByPage)); | |||||
} | |||||
} | |||||
``` | |||||
## 参考 | |||||
- BeetlSQL官方文档:http://ibeetl.com/guide/#beetlsql | |||||
- 开源项目:https://gitee.com/yangkb/springboot-beetl-beetlsql | |||||
- 博客:https://blog.csdn.net/flystarfly/article/details/82752597 |
@@ -56,6 +56,11 @@ | |||||
<artifactId>hutool-all</artifactId> | <artifactId>hutool-all</artifactId> | ||||
</dependency> | </dependency> | ||||
<dependency> | |||||
<groupId>com.google.guava</groupId> | |||||
<artifactId>guava</artifactId> | |||||
</dependency> | |||||
<dependency> | <dependency> | ||||
<groupId>org.projectlombok</groupId> | <groupId>org.projectlombok</groupId> | ||||
<artifactId>lombok</artifactId> | <artifactId>lombok</artifactId> | ||||
@@ -23,6 +23,9 @@ import javax.sql.DataSource; | |||||
@Configuration | @Configuration | ||||
public class BeetlConfig { | public class BeetlConfig { | ||||
/** | |||||
* Beetl需要显示的配置数据源,方可启动项目,大坑,切记! | |||||
*/ | |||||
@Bean(name = "datasource") | @Bean(name = "datasource") | ||||
public DataSource getDataSource(Environment env){ | public DataSource getDataSource(Environment env){ | ||||
HikariDataSource dataSource = new HikariDataSource(); | HikariDataSource dataSource = new HikariDataSource(); | ||||
@@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; | |||||
import lombok.Builder; | import lombok.Builder; | ||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
import org.beetl.sql.core.annotatoin.Table; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.util.Date; | import java.util.Date; | ||||
@@ -25,6 +26,7 @@ import java.util.Date; | |||||
@NoArgsConstructor | @NoArgsConstructor | ||||
@AllArgsConstructor | @AllArgsConstructor | ||||
@Builder | @Builder | ||||
@Table(name = "orm_user") | |||||
public class User implements Serializable { | public class User implements Serializable { | ||||
private static final long serialVersionUID = -1840831686851699943L; | private static final long serialVersionUID = -1840831686851699943L; | ||||
@@ -1,6 +1,7 @@ | |||||
package com.xkcoding.orm.beetlsql.service; | package com.xkcoding.orm.beetlsql.service; | ||||
import com.xkcoding.orm.beetlsql.entity.User; | import com.xkcoding.orm.beetlsql.entity.User; | ||||
import org.beetl.sql.core.engine.PageQuery; | |||||
import java.util.List; | import java.util.List; | ||||
@@ -22,8 +23,17 @@ public interface UserService { | |||||
* 新增用户 | * 新增用户 | ||||
* | * | ||||
* @param user 用户 | * @param user 用户 | ||||
* @return 保存的用户 | |||||
*/ | */ | ||||
void saveUser(User user); | |||||
User saveUser(User user); | |||||
/** | |||||
* 批量插入用户 | |||||
* | |||||
* @param users 用户列表 | |||||
*/ | |||||
void saveUserList(List<User> users); | |||||
/** | /** | ||||
* 根据主键删除用户 | * 根据主键删除用户 | ||||
@@ -62,5 +72,5 @@ public interface UserService { | |||||
* @param pageSize 每页条数 | * @param pageSize 每页条数 | ||||
* @return 分页用户列表 | * @return 分页用户列表 | ||||
*/ | */ | ||||
List<User> getUserByPage(Integer currentPage, Integer pageSize); | |||||
PageQuery<User> getUserByPage(Integer currentPage, Integer pageSize); | |||||
} | } |
@@ -1,9 +1,11 @@ | |||||
package com.xkcoding.orm.beetlsql.service.impl; | package com.xkcoding.orm.beetlsql.service.impl; | ||||
import cn.hutool.core.util.ObjectUtil; | |||||
import com.xkcoding.orm.beetlsql.dao.UserDao; | import com.xkcoding.orm.beetlsql.dao.UserDao; | ||||
import com.xkcoding.orm.beetlsql.entity.User; | import com.xkcoding.orm.beetlsql.entity.User; | ||||
import com.xkcoding.orm.beetlsql.service.UserService; | import com.xkcoding.orm.beetlsql.service.UserService; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.beetl.sql.core.engine.PageQuery; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
@@ -39,8 +41,19 @@ public class UserServiceImpl implements UserService { | |||||
* @param user 用户 | * @param user 用户 | ||||
*/ | */ | ||||
@Override | @Override | ||||
public void saveUser(User user) { | |||||
public User saveUser(User user) { | |||||
userDao.insert(user, true); | |||||
return user; | |||||
} | |||||
/** | |||||
* 批量插入用户 | |||||
* | |||||
* @param users 用户列表 | |||||
*/ | |||||
@Override | |||||
public void saveUserList(List<User> users) { | |||||
userDao.insertBatch(users); | |||||
} | } | ||||
/** | /** | ||||
@@ -50,7 +63,7 @@ public class UserServiceImpl implements UserService { | |||||
*/ | */ | ||||
@Override | @Override | ||||
public void deleteUser(Long id) { | public void deleteUser(Long id) { | ||||
userDao.deleteById(id); | |||||
} | } | ||||
/** | /** | ||||
@@ -61,7 +74,11 @@ public class UserServiceImpl implements UserService { | |||||
*/ | */ | ||||
@Override | @Override | ||||
public User updateUser(User user) { | public User updateUser(User user) { | ||||
return null; | |||||
if (ObjectUtil.isNull(user)) { | |||||
throw new RuntimeException("用户id不能为null"); | |||||
} | |||||
userDao.updateTemplateById(user); | |||||
return userDao.single(user.getId()); | |||||
} | } | ||||
/** | /** | ||||
@@ -82,7 +99,7 @@ public class UserServiceImpl implements UserService { | |||||
*/ | */ | ||||
@Override | @Override | ||||
public List<User> getUserList() { | public List<User> getUserList() { | ||||
return null; | |||||
return userDao.all(); | |||||
} | } | ||||
/** | /** | ||||
@@ -93,7 +110,7 @@ public class UserServiceImpl implements UserService { | |||||
* @return 分页用户列表 | * @return 分页用户列表 | ||||
*/ | */ | ||||
@Override | @Override | ||||
public List<User> getUserByPage(Integer currentPage, Integer pageSize) { | |||||
return null; | |||||
public PageQuery<User> getUserByPage(Integer currentPage, Integer pageSize) { | |||||
return userDao.createLambdaQuery().page(currentPage, pageSize); | |||||
} | } | ||||
} | } |
@@ -4,22 +4,23 @@ spring: | |||||
username: root | username: root | ||||
password: root | password: root | ||||
driver-class-name: com.mysql.cj.jdbc.Driver | 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 | |||||
#### beetlsql starter不能开启下面选项 | |||||
# 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: | logging: | ||||
level: | level: | ||||
com.xkcoding: debug | com.xkcoding: debug | ||||
@@ -27,5 +28,11 @@ logging: | |||||
beetl: | beetl: | ||||
enabled: false | enabled: false | ||||
beetlsql: | beetlsql: | ||||
enabled: true | |||||
sqlPath: /sql | |||||
daoSuffix: Dao | daoSuffix: Dao | ||||
basePackage: com.xkcoding.orm.beetlsql.dao | |||||
basePackage: com.xkcoding.orm.beetlsql.dao | |||||
dbStyle: org.beetl.sql.core.db.MySqlStyle | |||||
nameConversion: org.beetl.sql.core.UnderlinedNameConversion | |||||
beet-beetlsql: | |||||
dev: true |
@@ -1,14 +1,23 @@ | |||||
package com.xkcoding.orm.beetlsql.service.impl; | package com.xkcoding.orm.beetlsql.service.impl; | ||||
import cn.hutool.core.collection.CollUtil; | |||||
import cn.hutool.core.date.DateTime; | |||||
import cn.hutool.core.util.IdUtil; | |||||
import cn.hutool.core.util.ObjectUtil; | |||||
import cn.hutool.crypto.SecureUtil; | |||||
import cn.hutool.json.JSONUtil; | |||||
import com.xkcoding.orm.beetlsql.SpringBootDemoOrmBeetlsqlApplicationTests; | import com.xkcoding.orm.beetlsql.SpringBootDemoOrmBeetlsqlApplicationTests; | ||||
import com.xkcoding.orm.beetlsql.entity.User; | import com.xkcoding.orm.beetlsql.entity.User; | ||||
import com.xkcoding.orm.beetlsql.service.UserService; | import com.xkcoding.orm.beetlsql.service.UserService; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.beetl.sql.core.SQLManager; | |||||
import org.assertj.core.util.Lists; | |||||
import org.beetl.sql.core.engine.PageQuery; | |||||
import org.junit.Assert; | import org.junit.Assert; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import java.util.List; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* User Service测试 | * User Service测试 | ||||
@@ -29,14 +38,40 @@ public class UserServiceImplTest extends SpringBootDemoOrmBeetlsqlApplicationTes | |||||
@Test | @Test | ||||
public void saveUser() { | public void saveUser() { | ||||
String salt = IdUtil.fastSimpleUUID(); | |||||
User user = User.builder().name("testSave3").password(SecureUtil.md5("123456" + salt)).salt(salt).email("testSave3@xkcoding.com").phoneNumber("17300000003").status(1).lastLoginTime(new DateTime()).createTime(new DateTime()).lastUpdateTime(new DateTime()).build(); | |||||
user = userService.saveUser(user); | |||||
Assert.assertTrue(ObjectUtil.isNotNull(user.getId())); | |||||
log.debug("【user】= {}", user); | |||||
} | |||||
@Test | |||||
public void saveUserList() { | |||||
List<User> users = Lists.newArrayList(); | |||||
for (int i = 5; i < 15; i++) { | |||||
String salt = IdUtil.fastSimpleUUID(); | |||||
User user = User.builder().name("testSave" + i).password(SecureUtil.md5("123456" + salt)).salt(salt).email("testSave" + i + "@xkcoding.com").phoneNumber("1730000000" + i).status(1).lastLoginTime(new DateTime()).createTime(new DateTime()).lastUpdateTime(new DateTime()).build(); | |||||
users.add(user); | |||||
} | |||||
userService.saveUserList(users); | |||||
Assert.assertTrue(userService.getUserList().size() > 2); | |||||
} | } | ||||
@Test | @Test | ||||
public void deleteUser() { | public void deleteUser() { | ||||
userService.deleteUser(1L); | |||||
User user = userService.getUser(1L); | |||||
Assert.assertTrue(ObjectUtil.isNull(user)); | |||||
} | } | ||||
@Test | @Test | ||||
public void updateUser() { | public void updateUser() { | ||||
User user = userService.getUser(2L); | |||||
user.setName("beetlSql 修改后的名字"); | |||||
User update = userService.updateUser(user); | |||||
Assert.assertEquals("beetlSql 修改后的名字", update.getName()); | |||||
log.debug("【update】= {}", update); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -48,9 +83,17 @@ public class UserServiceImplTest extends SpringBootDemoOrmBeetlsqlApplicationTes | |||||
@Test | @Test | ||||
public void getUserList() { | public void getUserList() { | ||||
List<User> userList = userService.getUserList(); | |||||
Assert.assertTrue(CollUtil.isNotEmpty(userList)); | |||||
log.debug("【userList】= {}", userList); | |||||
} | } | ||||
@Test | @Test | ||||
public void getUserByPage() { | public void getUserByPage() { | ||||
List<User> userList = userService.getUserList(); | |||||
PageQuery<User> userByPage = userService.getUserByPage(1, 5); | |||||
Assert.assertEquals(5, userByPage.getList().size()); | |||||
Assert.assertEquals(userList.size(), userByPage.getTotalRow()); | |||||
log.debug("【userByPage】= {}", JSONUtil.toJsonStr(userByPage)); | |||||
} | } | ||||
} | } |