Al construir un nuevo proyecto, debe agregar dependencias JPA y H2
Las dependencias del archivo de POM son las siguientes:
<? xml versión = "1.0" encoding = "utf-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" 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> <grupo> com.chhliu.springboot.h2 </groupid> <AtifactId> springboot-h2 </artifactid> <versión> 0.0.1-snapshot </versewer> <packaging> jar </paquete> <name> springboot-h2 </name> <scription> Proyecto de demostración para el arranque de primavera H2 </scription> <-parent> <grupo> org.spingframeWork.Boot </groupid> <artifactid> spring--sBoot-StAR-S-TART-S-STARTAR> <Versión> 1.4.3.Release </versión> <relativePath/> <!-Buscar padres desde repositorio-> </parent> <properties> <ject.build.sourceEncoding> utf-8 </project.build.sourceEnding> <jection.Reporting.outputenCoding> utf-8 </project.Reporting <java.version> 1.7 </Java.version> </propiies> <pendencies> <pendency> <uproupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-data-jpa </artifactid> </dependency> <pendency> <grupid> org.springframework.Boot </groupid> <artifactid> spring-boot starter-web </artifactid> </pepertency> <pendency> <uproupid> com.h2database </groupid> <artifactid> h2 </artifactid> <cope> runtime </cope> </dependency> <epardency> <uproupid> org.springframework.boot </groupid> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependency> </dependency> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </ject>
paquete com.chhliu.springboot.h2.entity; import java.math.bigdecimal; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.GeneratedValue; import javax.Persistence.GenerationType; import javax.persistence.id; @Entity Public Class User {@id @GeneratedValue (estrategia = generaciónType.auto) ID de largo privado; @Column Private String Nombre de usuario; @Column Nombre de cadena privada; @Column Private Corta edad; @Column Private BigDecimal Balance; ... omitir los métodos de gettter y setter} paquete com.chhliu.springboot.h2.Repository; importar org.springframework.data.jpa.repository.jparepository; importar org.springframework.stereotype.repository; import com.chhliu.springboot.h2.entity.user; @Repository Public Interface UserRepository extiende jParepository <User, Long> {} paquete com.chhliu.springboot.h2.controller; importar org.springframework.beans.factory.annotation.aUtowired; importar org.springframework.web.bind.annotation.getMapping; importar org.springframework.web.bind.annotation.pathvariable; importar org.springframework.web.bind.annotation.restController; import com.chhliu.springboot.h2.entity.user; import com.chhliu.springboot.h2.repository.userRepository; @RestController Public Class UserController {@AUTOWIRED USERREPRESITORY USERREPOSITORY; @GetMapping ("/user/{id}") // Tenga en cuenta que la anotación GetMapping se usa aquí, y la función de esta anotación es similar a @RequestMapping (valor = "/user/{id}", método = requestmethod.get), @postmapping annotation es lo mismo que el usuario público findByid (@PathVariable Long Id) {return this. }}# Número de puerto de servidor Server.port = 7900 # si se debe generar la instrucción DDL Spring.jpa.Generate-DDL = false # si se debe imprimir la instrucción SQL Spring.jpa.show-sql = true # Generar automáticamente DDL. Dado que se especifica DDL específico, se establece en ninguno de Spring.jpa.Hibernate.DDL-AUTO = Ninguno # Use la base de datos H2 Spring.DataSource.platform = H2 # spring.dataSource.data = classpath: data.sql # Configurar el registro de la impresión Información logging.level.root = info logging.level.org.hibernate = info loging.level.org.hibernate.type.descriptor.sql.basicbinder = traza logging.level.org.hibernate.type.descriptor.sql.basicextractor = trace loging.level.com.itmuch = debug
Ingrese la siguiente URL en su navegador: http: // localhost: 7900/usuario/4
Puedes ver los resultados de la prueba
{"id": 4, "nombre de usuario": "user4", "nombre": "maliu", "edad": 20, "balance": 100.00}
Explicar que nuestra integración está bien
paquete com.chhliu.springboot.h2; importar org.junit.assert; importar org.junit.test; importar org.junit.runner.runwith; importar org.springframework.beans.factory.annotation.aUtowired; importar org.springframework.boot.test.context.springboottest; importar org.springframework.test.context.junit4.springrunner; import com.chhliu.springboot.h2.entity.user; import com.chhliu.springboot.h2.repository.userRepository; @Runwith (SpringRunner.class) @SpringBoottest Public Class SpringBooth2ApplicationTest {@AUTOWIREDEDREDED PRIVADO USERREPOSITY Repository; @Test public void test () {user u = Repository.Findone (1L); Afirmar.AssertEquals ("Caso de prueba exitoso", "Zhang San", U.getName ()); }} ¡Encontré que la prueba estaba bien!
Dado que H2 es una base de datos de memoria relacional, cuando se inicia el programa, las tablas se crearán en la memoria y los datos se almacenarán en la memoria. Después de reiniciar el programa, los datos en la memoria se eliminarán automáticamente, que se pueden usar bien para las pruebas unitarias en la capa DAO y las pruebas unitarias en la capa de servicio, de modo que todo el programa no depende de bases de datos específicas y también mejore la eficiencia de las pruebas unitarias.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.