spring boot 專案 ,spring data jpa 初使用
阿新 • • 發佈:2018-11-17
我使用的是 maven 構建工具,使用 spring data jpa 來實現簡單的使用者資料增刪改查功能。
專案使用: spring boot、spring data jpa、mysql。
專案使用 postman 工具來測試功能是否實現。
程式碼
pom.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> <groupId>com.kaven</groupId> <artifactId>spring-data-jpa</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-data-jpa</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.31</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
專案結構如下圖:
user 表:
create table user(
id int auto_increment,
age int not null,
primary key(id)
);
user 表結構如下圖:
application.yml 如下:
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/kaven username: root password: 015036 jpa: hibernate: ddl-auto: update #更新 show-sql: true
show-sql: true
操作資料庫中的資料時會生成相應的 sql 語句展示出來。
效果如下圖:
User.java 如下:
package com.kaven.springdatajpa.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; /** * @program: spring-data-jpa * @description: 使用者類 * @author: Kaven * @create: 2018-11-16 12:50 **/ @Entity public class User { //使用者唯一標識 @Id @GeneratedValue private Integer id; //使用者年齡 private Integer age; public User() {} public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "{\n" + " id: " + id +",\n"+ " age: " + age + "\n}"; } }
UserController.java 如下:
package com.kaven.springdatajpa.controller;
import com.kaven.springdatajpa.entity.User;
import com.kaven.springdatajpa.repository.UserRepository;
import com.kaven.springdatajpa.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @program: spring-data-jpa
* @description: 使用者操作控制器
* @author: Kaven
* @create: 2018-11-16 12:53
**/
@RestController
public class UserController {
@Autowired
private UserRepository UserRepository;
@Autowired
private UserService UserService;
/**
* 獲取所有使用者資訊
* */
@GetMapping(value = "/users")
public List<User> Users() {
return UserRepository.findAll();
}
/**
* 新增使用者
* */
@PostMapping(value = "/user/add")
public User addUser(User User) {
return UserRepository.save(User);
}
/**
* 根據使用者 id 獲取使用者資訊
* */
@PostMapping(value = "/user/get")
public User getUser(@RequestParam("id") Integer id) {
return UserRepository.findById(id).get();
}
/**
* 更新使用者資訊
* */
@PutMapping(value = "/update")
public void updateUser(@RequestParam("id") Integer id ,
@RequestParam("age") Integer age) {
UserRepository.updateUser(id , age);
}
/**
* 刪除使用者資訊
* */
@DeleteMapping(value = "/user/delete")
public void UserDelede(@RequestParam("id") Integer id) {
UserRepository.deleteById(id);
}
/**
* 通過使用者年齡查詢使用者列表
* */
@GetMapping(value = "/users/findbyage")
public List<User> UserListByAge(@RequestParam("age") Integer age) {
return UserRepository.findByAge(age);
}
/**
* 同時新增兩個使用者(只能同時新增成功或者同時新增失敗)
* */
@PostMapping(value = "/users/inserttwo")
public void insertTwoUsers() {
UserService.insertTwo();
}
/**
* 通過使用者 id 獲取使用者的年齡
*/
@GetMapping(value = "/user/id")
public Integer getAge(@RequestParam("id") Integer id) throws Exception {
return UserService.getAge(id);
}
}
UserRepository.java 如下:
package com.kaven.springdatajpa.repository;
import com.kaven.springdatajpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @program: spring-data-jpa
* @description: 使用者倉庫類
* @author: Kaven
* @create: 2018-11-16 13:04
**/
@Component
public interface UserRepository extends JpaRepository<User, Integer> {
/**
* 通過年齡來查詢使用者列表,根據 spring data jpa 的命名規則來命名方法名
*/
public List<User> findByAge(Integer age);
/**
* 也可以自己寫 sql 語句實現
* 更新使用者
* */
@Transactional
@Modifying
@Query(value = "update User bean set bean.age=?2 where bean.id=?1")
public void updateUser(Integer id , Integer age);
}
UserService.java 如下:
package com.kaven.springdatajpa.service;
import com.kaven.springdatajpa.entity.User;
import com.kaven.springdatajpa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @program: spring-data-jpa
* @description: 使用者應用類
* @author: Kaven
* @create: 2018-11-16 12:57
**/
@Service
public class UserService {
@Autowired
private UserRepository UserRepository;
/**
* 事務處理
* 兩個使用者只能同時新增成功,或者同時新增失敗
* */
@Transactional
public void insertTwo() {
User UserA = new User();
UserA.setAge(19);
UserRepository.save(UserA);
User UserB = new User();
UserB.setAge(22);
UserRepository.save(UserB);
}
/**
* 根據使用者 id 來獲取使用者的年齡資訊
* */
public Integer getAge(Integer id) throws Exception {
User User = UserRepository.findById(id).get();
Integer age = User.getAge();
return age;
}
/**
* 根據使用者 id 來獲取使用者資訊
* */
public User findOne(Integer id) {
return UserRepository.findById(id).get();
}
}
程式完成後,啟動程式。
如下,說明啟動成功:
F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=50884 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:F:\Install\CompilerInstall\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar=50885:F:\Install\CompilerInstall\IntelliJ IDEA 2018.2.4\bin" -Dfile.encoding=UTF-8 -classpath F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\charsets.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\deploy.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\dnsns.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\jaccess.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\localedata.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\nashorn.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\sunec.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\ext\zipfs.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\javaws.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\jce.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\jfr.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\jfxswt.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\jsse.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\management-agent.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\plugin.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\resources.jar;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\lib\rt.jar;F:\Install\CompilerWorkspace\IDEA2\spring-data-jpa\target\classes;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.1.0.RELEASE\spring-boot-starter-data-jpa-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-aop\2.1.0.RELEASE\spring-boot-starter-aop-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-aop\5.1.2.RELEASE\spring-aop-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\aspectj\aspectjweaver\1.9.2\aspectjweaver-1.9.2.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-jdbc\2.1.0.RELEASE\spring-boot-starter-jdbc-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-jdbc\5.1.2.RELEASE\spring-jdbc-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\javax\transaction\javax.transaction-api\1.3\javax.transaction-api-1.3.jar;F:\Install\Apache\apache-maven-3.5.4\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;F:\Install\Apache\apache-maven-3.5.4\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\hibernate\hibernate-core\5.3.7.Final\hibernate-core-5.3.7.Final.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;F:\Install\Apache\apache-maven-3.5.4\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\javassist\javassist\3.23.1-GA\javassist-3.23.1-GA.jar;F:\Install\Apache\apache-maven-3.5.4\repository\net\bytebuddy\byte-buddy\1.9.3\byte-buddy-1.9.3.jar;F:\Install\Apache\apache-maven-3.5.4\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\hibernate\common\hibernate-commons-annotations\5.0.4.Final\hibernate-commons-annotations-5.0.4.Final.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\data\spring-data-jpa\2.1.2.RELEASE\spring-data-jpa-2.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\data\spring-data-commons\2.1.2.RELEASE\spring-data-commons-2.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-orm\5.1.2.RELEASE\spring-orm-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-context\5.1.2.RELEASE\spring-context-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-tx\5.1.2.RELEASE\spring-tx-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-beans\5.1.2.RELEASE\spring-beans-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-aspects\5.1.2.RELEASE\spring-aspects-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-web\2.1.0.RELEASE\spring-boot-starter-web-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter\2.1.0.RELEASE\spring-boot-starter-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot\2.1.0.RELEASE\spring-boot-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-autoconfigure\2.1.0.RELEASE\spring-boot-autoconfigure-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-logging\2.1.0.RELEASE\spring-boot-starter-logging-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;F:\Install\Apache\apache-maven-3.5.4\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.1\log4j-to-slf4j-2.11.1.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;F:\Install\Apache\apache-maven-3.5.4\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-json\2.1.0.RELEASE\spring-boot-starter-json-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\jackson\core\jackson-databind\2.9.7\jackson-databind-2.9.7.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\jackson\core\jackson-core\2.9.7\jackson-core-2.9.7.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.7\jackson-datatype-jdk8-2.9.7.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.7\jackson-datatype-jsr310-2.9.7.jar;F:\Install\Apache\apache-maven-3.5.4\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.7\jackson-module-parameter-names-2.9.7.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.0.RELEASE\spring-boot-starter-tomcat-2.1.0.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.12\tomcat-embed-core-9.0.12.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.12\tomcat-embed-el-9.0.12.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.12\tomcat-embed-websocket-9.0.12.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\hibernate\validator\hibernate-validator\6.0.13.Final\hibernate-validator-6.0.13.Final.jar;F:\Install\Apache\apache-maven-3.5.4\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-web\5.1.2.RELEASE\spring-web-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-webmvc\5.1.2.RELEASE\spring-webmvc-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-expression\5.1.2.RELEASE\spring-expression-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\mysql\mysql-connector-java\5.1.31\mysql-connector-java-5.1.31.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-core\5.1.2.RELEASE\spring-core-5.1.2.RELEASE.jar;F:\Install\Apache\apache-maven-3.5.4\repository\org\springframework\spring-jcl\5.1.2.RELEASE\spring-jcl-5.1.2.RELEASE.jar com.kaven.springdatajpa.SpringDataJpaApplication
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2018-11-16 23:17:03.222 INFO 4504 --- [ main] c.k.s.SpringDataJpaApplication : Starting SpringDataJpaApplication on DESKTOP-1EB3JGB with PID 4504 (F:\Install\CompilerWorkspace\IDEA2\spring-data-jpa\target\classes started by Kaven in F:\Install\CompilerWorkspace\IDEA2\spring-data-jpa)
2018-11-16 23:17:03.232 INFO 4504 --- [ main] c.k.s.SpringDataJpaApplication : No active profile set, falling back to default profiles: default
2018-11-16 23:17:05.186 INFO 4504 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2018-11-16 23:17:05.306 INFO 4504 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 100ms. Found 1 repository interfaces.
2018-11-16 23:17:06.038 INFO 4504 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$d8d98785] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-11-16 23:17:07.452 INFO 4504 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-11-16 23:17:07.502 INFO 4504 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-11-16 23:17:07.502 INFO 4504 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.12
2018-11-16 23:17:07.512 INFO 4504 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\bin;F:\Install\JavaJDK\JDKInstall\jdk1.8.0_181\jre\bin;F:\Install\Apache\apache-tomcat-9.0.12\lib;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\MySQL\MySQL Utilities 1.6\;F:\Install\Apache\apache-maven-3.5.4\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;F:\Install\web\nodejsInstall\;F:\Install\VersionControlSystem\GitInstall\Git\cmd;F:\Install\DataBase\RedisInstall;C:\Users\Kaven\AppData\Local\Microsoft\WindowsApps;C:\Users\Kaven\AppData\Roaming\npm;.]
2018-11-16 23:17:08.082 INFO 4504 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-11-16 23:17:08.082 INFO 4504 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 4750 ms
2018-11-16 23:17:08.212 INFO 4504 --- [ main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-11-16 23:17:08.232 INFO 4504 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-16 23:17:08.232 INFO 4504 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-16 23:17:08.232 INFO 4504 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter' to: [/*]
2018-11-16 23:17:08.232 INFO 4504 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-11-16 23:17:08.772 INFO 4504 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2018-11-16 23:17:09.111 INFO 4504 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2018-11-16 23:17:09.790 INFO 4504 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2018-11-16 23:17:10.075 INFO 4504 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.3.7.Final}
2018-11-16 23:17:10.085 INFO 4504 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2018-11-16 23:17:10.790 INFO 4504 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2018-11-16 23:17:11.182 INFO 4504 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2018-11-16 23:17:12.971 INFO 4504 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2018-11-16 23:17:14.665 INFO 4504 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-16 23:17:14.785 WARN 4504 --- [ main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2018-11-16 23:17:15.184 INFO 4504 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-16 23:17:15.194 INFO 4504 --- [ main] c.k.s.SpringDataJpaApplication : Started SpringDataJpaApplication in 12.94 seconds (JVM running for 15.21)
測試
新增使用者
添加了兩個使用者,下面驗證新增使用者是否成功。
獲取所有的使用者資訊
成功添加了兩個使用者。
刪除使用者
驗證刪除使用者成功,如下圖:
根據使用者 id 獲取使用者的年齡資訊
同時增加兩個使用者(事務處理)
驗證同時新增兩個使用者成功,如下圖,失敗的情況可以自己去測一測,我這裡是可以的。
根據使用者年齡獲取使用者資訊
根據使用者 id 獲取使用者資訊
更新使用者資訊
驗證使用者資料是否更新,如下圖:
測試部分完成了,功能都能實現。
一個 spring data jpa 的簡單應用。