Maven依賴配置
<!-- 引入 spring-boot-starter-web 依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入 spring-boot-starter-data-jpa 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 引入 mysql-connector-java 依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 引入 spring-boot-starter-test 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
application.properties配置
# datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc\:mysql\://localhost\:3306/spring_boot_demo_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=adm123456
# Tomcat will use the above plus the following to setup connection pooling
spring.datasource.tomcat.max-active=100
spring.datasource.tomcat.max-idle=8
spring.datasource.tomcat.min-idle=8
spring.datasource.tomcat.initial-size=10
spring.datasource.tomcat.init-s-q-l=SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci
# spring.datasource.tomcat.validation-query=
# spring.datasource.tomcat.test-on-borrow=false
# spring.datasource.tomcat.test-on-return=false
# spring.datasource.tomcat.test-while-idle=
# spring.datasource.tomcat.time-between-eviction-runs-millis=
# spring.datasource.tomcat.min-evictable-idle-time-millis=
# spring.datasource.tomcat.max-wait=
# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)
# spring.jpa.properties.*= # properties to set on the JPA connection
spring.jpa.open-in-view=true
spring.jpa.show-sql=false
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.database=MYSQL
spring.jpa.generate-ddl=false
# spring.jpa.hibernate.naming-strategy= # naming classname
# spring.jpa.hibernate.ddl-auto= # defaults to create-drop for embedded dbs
spring.data.jpa.repositories.enabled=true
SpringBoot啓動類
package com.yuanx;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
*
* @ClassName: DemoApplication
* @Description: Demo啓動類
* @author YuanXu
* @date 2019年7月5日 下午4:09:33
*
*/
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
/**
* @Title main
* @Description Demo啓動入口
* @author YuanXu
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Entity實體類
package com.yuanx.demo.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
/**
*
* @ClassName: TUserEntity
* @Description: t_user
* @author YuanXu
* @date 2019年7月8日 16:34
*
*/
@Entity
@Table(name = "t_user")
public class TUserEntity implements Serializable {
private static final long serialVersionUID = 6305237326125691411L;
/**
* 用戶ID
*/
@Id
@GeneratedValue(generator = "assigned")
@GenericGenerator(name = "assigned", strategy = "uuid.hex")
private String id;
/**
* 所屬機構ID
*/
@Column(name = "org_id")
private String orgId;
/**
* 所屬部門ID
*/
@Column(name = "dept_id")
private String deptId;
/**
* 姓名
*/
@Column(name = "name")
private String name;
/**
* 賬號
*/
@Column(name = "code")
private String code;
/**
* 手機號
*/
@Column(name = "phone")
private String phone;
/**
* 郵箱地址
*/
@Column(name = "email")
private String email;
/**
* 登錄密碼
*/
@Column(name = "pwd")
private String pwd;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getOrgId() {
return this.orgId;
}
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public String getDeptId() {
return this.deptId;
}
public void setDeptId(String deptId) {
this.deptId = deptId;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public String getPhone() {
return this.phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPwd() {
return this.pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
Repository接口類
package com.yuanx.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.yuanx.demo.entity.TUserEntity;
/**
*
* @ClassName: TUserRepository
* @Description: t_user Repository
* @author YuanXu
* @date 2019年7月8日 16:34
*
*/
public interface TUserRepository extends JpaRepository<TUserEntity, String> {
// TODO 自定義方法
}
Service接口類
package com.yuanx.demo.service;
import com.yuanx.demo.entity.TUserEntity;
/**
*
* @ClassName: ITUserService
* @Description: t_user Service接口
* @author YuanXu
* @date 2019年7月8日 16:34
*
*/
public interface ITUserService {
public TUserEntity getOne(String id);
public TUserEntity save(TUserEntity entity);
// TODO 自定義接口方法
}
Service實現類
package com.yuanx.demo.service.impl;
import java.util.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.yuanx.demo.entity.TUserEntity;
import com.yuanx.demo.repository.TUserRepository;
import com.yuanx.demo.service.ITUserService;
/**
*
* @ClassName: TUserService
* @Description: t_user Service
* @author YuanXu
* @date 2019年7月8日 16:34
*
*/
@Service
public class TUserServiceImpl implements ITUserService {
/**
* 日誌記錄對象
*/
@SuppressWarnings("unused")
private static Logger log = LoggerFactory.getLogger(TUserServiceImpl.class);
@Autowired
private TUserRepository userRepository;
@Override
public TUserEntity getOne(String id) {
if (StringUtils.isEmpty(id)) {
return null;
} else {
Optional<TUserEntity> opt = userRepository.findById(id);
return opt.isPresent() ? opt.get() : null;
}
}
@Override
public TUserEntity save(TUserEntity entity) {
if (entity != null) {
return userRepository.save(entity);
} else {
return null;
}
}
// TODO 自定義方法
}
JUnit測試類
package com.yuanx.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.yuanx.DemoApplication;
import com.yuanx.demo.entity.TUserEntity;
import com.yuanx.demo.service.ITUserService;
/**
*
* @ClassName: DemoTest
* @Description: Demo測試類
* @author YuanXu
* @date 2019年7月5日 下午4:21:25
*
*/
@RunWith(value = SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = { DemoApplication.class })
public class DemoTest {
@Autowired
private ITUserService userService;
@Test
public void doTest() {
TUserEntity user_1 = userService.getOne("4028e3816bd5a547016bd5a55b6e0000");
if (user_1 != null) {
System.out.println(String.format("############_1: %s", user_1.getName()));
} else {
TUserEntity user = new TUserEntity();
user.setName("測試用戶");
user = userService.save(user);
System.out.println("$$$$:" + user.getId());
}
System.out.println("單元測試執行完畢");
}
}
單元測試結果