|
|
Publicado en 20/2/2019 14:44:57
|
|
|
|

Además, estoy a medias en Java y no estoy muy familiarizado con la familia Spring Bucket, y he construido un framework de proyecto basado en tutoriales online y algunas de mis propias experiencias.
Entorno del proyecto:Versión JDK: 1.8.0_171, versión de mysql: 5.7.17, spring boot: 2.1.1.RELEASE, herramientas de desarrollo: idea.
Hibernar y JPA
El proyecto web de este artículo utiliza Hibernate como marco de capa de persistencia. En Spring Boot, necesitamos entender otro concepto: JPA
La frase anterior puede ser ambigua, pero no significa que JPA sea un concepto en Spring Boot. En su lugar, es Java Persistence API, que se traduce al chino como: Java Persistence Layer API.
JPA es una especificación estándar basada en ORM (o mapeo O/R), en la que JPA solo define reglas estándar y no proporciona su implementación.
Actualmente, las principales implementaciones de JPA son Hibernate, EclipseLink, OpenJPA, etc.
Debido al dominio de Hibernate en el campo de la tecnología de resolución de acceso a datos, el estándar JPA está básicamente dominado por Hibernate.
SpringBoot es un rifle automático
Spring Data JPA se proporciona como una herramienta de interfaz para que los desarrolladores apliquen el framework Hibernate. Nuestro Spring Boot ofrece un "módulo automático de dependencias" totalmente automatizado: spring-boot-starter-data-jpa
Estructura de dependencias POM:
¿Alguien tiene preguntas sobre el archivo POM sin cita para Hibernate?
La razón es que, como se muestra en la figura anterior, spring-boot-starter-data-jpa depende de hibernate-core, y al referenciar spring-boot-starter-data-jpa, el proyecto Maven introducirá automáticamente el paquete del que depende.
application.yml Perfil:
Enlace oficial de la fuente de datos de configuración de Spring:El inicio de sesión del hipervínculo es visible.
########################################## ###datasource - Especificar la información de conexión a la base de datos MySQL ###spring.datasource.url: Dirección MySQL ###spring.datasource.user: Nombre de usuario de la base de datos ###spring.datasource.password: La contraseña de la base de datos ###spring.datasource.driverClassName: Correspondiente al controlador de la base de datos ###spring.datasource.max-activo: Especifica el número máximo de conexiones activas en el pool de conexiones ###spring.datasource.max-inactivo: Especifica el número máximo de conexiones libres en el pool de conexiones. ###spring.datasource.min-idle: Especifica el valor mínimo que debe mantenerse (para pools de conexiones DBCP y Tomcat) ###spring.datasource.initial-size: Especifica el número de conexiones establecidas inicialmente cuando se inicia el pool de conexiones ### ###其他信息总结: ###spring.dao.exceptiontranslation.enabled Tanto si PersistenceExceptionTranslationPostProcessor está habilitado, el valor predeterminado es cierto ###spring.datasource.abandon-when-percentage-fullestablece el porcentaje de conexiones abandonadas que se cierran o se reportan cuando se abandona el tiempo de espera ###spring.datasource.allow-pool-suspension Al usar el pool Hikari, si permitir que el pool de conexión se ponga en pausa está configurado como falso ###spring.datasource.nombre-de usuario alternativo permitidosi se permiten nombres de usuario alternativos. ###spring.datasource.auto-commitEspecifica si las actualizaciones se comprometen automáticamente. ###spring.datasource.catalog especifica el catálogo por defecto. ###spring.datasource.commit-on-return establece si debe comprometer todas las transacciones pendientes cuando se devuelva la conexión ###spring.datasource.connection-init-sql especifica que la conexión se crea y se añade al SQL ejecutado antes del pool de conexiones. ###spring.datasource.connection-init-sqls Al usar el pool de conexiones DBCP, especifica el sql que se ejecutará en la inicialización ###spring.datasource.conexión-propiedades. [clave]Especifica los atributos a configurar al usar el pool de conexiones DBCP ###spring.datasource.connection-test-query especifica la instrucción SQL que verifica la legitimidad de la ejecución de la conexión ###spring.datasource.connection-timeout Especifica el tiempo de espera para la conexión, en milisegundos. ###spring.datasource.continue-on-errorAl inicializar la base de datos y encontrar un error de si continuar o no, el valor predeterminado es falso ###spring.datasource.data especifica el script Data (DML) ###spring.datasource.data-source-class-name Especifica el nombre completamente calificado de la fuente de datos. ###spring.datasource.data-source-jndi especifica la dirección del jndi ###spring.datasource.data-source-properties. Al usar el conjunto de conexiones Hikari, especifica los atributos a establecer ###spring.datasource.db-properties utiliza el pool de conexiones Tomcat, especificando las propiedades a establecer ###spring.datasource.default-auto-commit se confirma automáticamente. ###spring.datasource.default-catalog especifica el catálogo que se conecta al catálogo por defecto. ###spring.datasource.default-only-read-alone Si se debe poner la conexión predeterminada en solo lectura. ###spring.datasource.default-transaction-isolationEspecifica el nivel de aislamiento por defecto para las transacciones conectadas. ###spring.datasource.driver-class-name especifica el nombre de clase del controlador, que se detecta automáticamente desde la URL de JDBC por defecto. ###spring.datasource.fair-queue Si se deben usar conexiones FIFO. ###spring.datasource.health-check-properties. [clave] Atributo pasado al usar el pool de conexiones Hikari durante la comprobación de latidos cardíacos ###spring.datasource.idle-timeout Especifica cuánto tiempo no se usa la conexión, que por defecto está configurada como inactiva ###spring.datasource.ignore-exception-on-preloadO sea que la excepción se ignore cuando se inicializa el pool de conexión. ###spring.datasource.init-sqlsql que se ejecuta cuando se crea una conexión ###spring.datasource.initial-size especifica el número de conexiones establecidas inicialmente cuando se inicia el pool de conexiones ###spring.datasource.initialization-fail-fast. Al crear un pool de conexiones, no es posible crear un número mínimo especificado de conexiones para lanzar una excepción ###spring.datasource.initializeEspecifica si inicializar la fuente de datos con data.sql, por defecto: true ###spring.datasource.isolate-internal-queries especifica si las consultas internas deben ser en cuarentena, quedando por defecto en false ###spring.datasource.jdbc-interceptors Al usar el pool de conexiones Tomcat, especifica el interceptor jdbc y la separación en punto y coma ###spring.datasource.jdbc-url especifica la URL de JDBC. ###spring.datasource.jmx-enabled está activado por defecto: false ###spring.datasource.jndi-nameEspecifica el nombre del jndi. ###spring.datasource.filter-detection-threshold ¿Cuántos milisegundos detectas una fuga de conexión cuando usas el pool de conexiones de Hikari? ###spring.datasource.log-abandonado utiliza el pool de conexiones DBCP para rastrear sentencias o conexiones abandonadas, el valor por defecto es falso ###spring.datasource.log-errores-validaciónAl usar el pool de conexión Tomcat, si imprimir un error de validación. ###spring.datasource.login-timeout Especifica el tiempo de espera para conectarse a la base de datos. ###spring.datasource.max-edad especifica la edad máxima de las conexiones en el conjunto de conexiones ###spring.datasource.max-duración especifica la vida útil máxima de las conexiones en el conjunto de conexiones, en milisegundos. ###spring.datasource.max-declaraciones preparadas abiertas especifica el número máximo de declaraciones preparadas que se abren. ###spring.datasource.max-wait especifica el tiempo máximo de espera para que el pool de conexiones espere a que la conexión regrese, en milisegundos. ###spring.datasource.maximum-pool-sizeEspecifica el número máximo de conexiones en el pool de conexiones, incluyendo conexiones activas e inactivas. ###spring.datasource.min-evidable-idle-time-millisEspecifica una conexión libre durante el tiempo mínimo en que puede estar inactiva antes de poder ser despejada. ###spring.datasource.min-idle especifica el valor mínimo que debe mantenerse (para pools de conexiones DBCP y Tomcat) ###spring.datasource.minimum-idle especifica el número mínimo de conexiones libres mantenidas por una conexión, y al usar HikariCP. ###spring.datasource.name Especifica el nombre de la fuente de datos. ###spring.datasource.num-tests-per-eviction-run especifica el número de objetos al ejecutar cada hilo evitor de objetos inactivo ###spring.datasource.passwordEspecifica la contraseña de la base de datos. ###spring.datasource.platform especifica la Plataforma (schema-${platform}.sql que debe usarse para el esquema, que por defecto es a: all ###spring.datasource.pool-nameEspecifica el nombre del pool de conexión. ###spring.datasource.pool-prepared-statementsEspecifica si agrupar sentencias. ###spring.datasource.propagar-interrupción-estadoIndependientemente de propagar el estado de interrupción si el hilo se interrumpe mientras espera la conexión. ###spring.datasource.onlyread. Al usar el pool de conexiones Hikari, si marcar la fuente de datos como solo lectura ###spring.datasource.register-mbeans especifica si el pool de conexiones Hikari registra MBeans JMX. ###spring.datasource.remove-abandoned especifica si se debe eliminar una conexión inmediatamente después del tiempo de espera abandonado. ###spring.datasource.remove-abandoned-timeout Especifica la hora en la que debe abandonarse la conexión. ###spring.datasource.rollback-on-returnSi revertir una transacción pendiente al devolver una conexión. ###spring.datasource.schema especifica el script Schema (DDL). ###spring.datasource.separator especifica el separador de sentencias para inicializar el script, por defecto: ; ###spring.datasource.sql-script-encoding especifica la codificación de scripts SQL. ###spring.datasource.suspect-timeoutEspecifica el tiempo de espera antes de imprimir la conexión abandonada. ###spring.datasource.test-on-borrowAo pedir prestada una conexión de un pool de conexión, si probar la conexión. Se crea ###spring.datasource.test-on-connect, si se debe probar la conexión ###spring.datasource.test-on-returnIndependientemente de que la conexión se devuelva al pool de conexiones. ###spring.datasource.test-while-idleIf realizar una prueba de conexión cuando la conexión está inactiva. ###spring.datasource.time-between-evidtion-runs-millis Especifica el intervalo de tiempo de operación entre comprobaciones de conexión inactiva, limpieza de conexiones abandonadas y tamaño del pool de conexiones inactivas ###spring.datasource.transaction-isolation especifica el nivel de aislamiento de la transacción, que se especifica al usar el pool de conexiones Hikari ###spring.datasource.url especifica la URL de JDBC. ###spring.datasource.use-disposable-connection-façade envuelve la conexión para evitar que se use después de cerrarla. ###spring.datasource.use-es igual a si se debe usar String.equals() para reemplazar ==. ###spring.datasource.use-lock está bloqueado en la operación de conexión ###spring.datasource.usernameEspecifica el nombre de la base de datos. ###spring.datasource.validation-interval especifica cuántos ms realizar una comprobación de conexión. ###spring.datasource.validation-query especifica la instrucción SQL para la validación de la conexión al obtener una conexión. ###spring.datasource.validation-query-timeout Especifica el tiempo de espera para la consulta de validación de conexión. ###spring.datasource.validation-timeout Establece el tiempo de espera para la validación de conexión, que se especifica al usar el pool de conexiones Hikari ###spring.datasource.validator-class-name El calificador completo del validador usado para probar la consulta. ###spring.datasource.xa.data-source-class-name Especifica el calificador completo de la fuente de datos. ###spring.datasource.xa.properties especifica las propiedades que se pasan a la fuente de datos XA ###spring.datasource.url=jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=UTF8 ########################################## spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.max-activo=20 spring.datasource.max-reposo=8 spring.datasource.min-idle=8 spring.datasource.inicial-tamaño=10 ########################################## ##SPring Información de configuración JPA ###spring.jpa.database especifica la base de datos objetivo. ###spring.jps.show-sq: Si mostrar las sentencias SQL ###spring.jpa.hibernate.ddl-auto especifica el modo DDL (ninguno, validar, actualizar, crear, crear-drop). Al usar una base de datos embebida, el valor predeterminado es crear-drop, de lo contrario es ninguno. ###spring.jpa.hibernate.naming-strategyEspecifica la política de nombres. ###其他: ###spring.jpa.database-platformEspecifica el tipo de base de datos objetivo. ###spring.jpa.generate-ddl si inicializar el esquema al inicio, por defecto se pone en false ###spring.jpa.hibernate.ddl-auto especifica el modo DDL (ninguno, validar, actualizar, crear, crear-drop). Al usar una base de datos embebida, el valor predeterminado es crear-drop, de lo contrario es ninguno. ###spring.jpa.hibernate.naming-strategyEspecifica la política de nombres. ###spring.jpa.open-in-view registra OpenEntityManagerInViewInterceptor y vincula JPA EntityManager al hilo de solicitudes, el valor por defecto es cierto ###spring.jpa.properties añade atributos adicionales al proveedor JPA. ###spring.jpa.show-sql Si activar el registro SQL está configurado como falso por defecto ########################################## spring.jpa.database = MYSQL spring.jpa.show-sql = true spring.jpa.hibernate.ddl-auto = actualización spring.jpa.hibernate.estrategia-de nombramiento = org.hibernate.cfg.MejoradaEstrategiaDenombres spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect spring.freemarker.charset=UTF-8
La estructura completa del paquete
Configuración de la fuente de datos:
Clase de entidad:
Interfaz de operación de la base de datos:
La interfaz de operación de la base de datos hereda de la clase genérica JpaRepository, y cuando la hereda, adquiere el poder divino que otorga a los desarrolladores:
Podemos llamar directamente a estos métodos para realizar operaciones en bases de datos, y también podemos personalizar HQL para completar otras operaciones que se adapten a nuestra personalidad, como:
En este código, a través de @Query comentario,Completé la redacción de HQLdonde ":name" es consistente con el parámetro de la anotación @Param que aparece a continuación.
Nota: El nombre de la tabla en HQL debería ser el nombre de clase del mapa ORM, y HQL tiene algunas diferencias respecto a las sentencias SQL tradicionales, como que el significado de "*" es distinto, etc.
Si no estás acostumbrado a usar HQL, también puedes usar sentencias SQL:
El método anterior sigue siendo efectivo cuando se realiza.nativeQuery to true significa usar el lenguaje SQL。
Clase de controlador:
Inicia el proyecto
Hibernate asignará automáticamente las clases de entidades a la base de datos para crear tablas relevantes para nosotros, y automáticamente igualará las tablas de la base de datos basándose en anotaciones como @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO), etc. Ahorra mucho trabajo de tabulación.
(Antes de comenzar el proyecto, primero tienes que construir la base de datos y la tabla se creará automáticamente)
hibernate_sequence tabla es una estrategia de generación de id @GeneratedValue anotada, GenerationType.AUTO representa la generación automática, siempre que el atributo id sea un tipo int o long; si es un id de tipo String, añadir esta anotación encima del id informará inmediatamente de un error. Por lo tanto, si es para el id del tipo String, no necesitas anotar el id con @GeneratedValue (strategy = GenerationType.AUTO).
Solicita una prueba
Completa la solicitud de datos y el guardado de datos a través de get y post respectivamente.
invocarEl inicio de sesión del hipervínculo es visible.La interfaz POST solicita añadir datos, como se muestra en la siguiente figura:
La consulta de la base de datos es la siguiente:
Obtén los datos a través de la siguiente interfaz:
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
Nota: Como ha solicitado la interfaz anterior, Java es muy sensible a la sensibilidad entre mayúsculas y mayúsculas, ya sea la dirección URL o los parámetros, ¡debe ser sensible a mayúsculas y minúsculas! Si una letra es mayúscula o minúscula, la solicitud no llegará a la interfaz o el parámetro quedará vacío.
El druida supervisa las siguientes situaciones:
Finalmente, adjunta el código fuente:
Turistas, si queréis ver el contenido oculto de esta publicación, por favor Respuesta
(Fin)
|
Anterior:No se ha conseguido configurar una fuente de datosPróximo:Té de la tarde Jieyou | Miércoles, 20 de febrero de 2019
|