Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 36133|Risposta: 7

[Fonte] Spring Boot Hibernate Druid Tutorial sulla costruzione del progetto MySQL [con codice sorgente]

[Copiato link]
Pubblicato su 20/02/2019 14:44:57 | | | |
Anch'io sono poco esperto in Java, non conosco molto bene la famiglia Spring Bucket, e ho costruito un framework di progetto basato su tutorial online e su alcune esperienze personali.
Ambiente del progetto:Versione JDK: 1.8.0_171, versione mysql: 5.7.17, spring boot: 2.1.1.RELEASE, strumenti di sviluppo: idea.

Ibernazione e JPA

Il progetto web in questo articolo utilizza Hibernate come framework per il livello di persistenza. In Spring Boot, dobbiamo capire un altro concetto: JPA

La frase precedente può essere ambigua, ma non significa che JPA sia un concetto in Spring Boot. Invece, si tratta di Java Persistence API, che in cinese viene tradotta come: Java Persistence Layer API.

JPA è una specifica standard basata su ORM (o mappatura O/R), in cui JPA definisce solo regole standard e non fornisce implementazione.

Attualmente, le principali implementazioni di JPA sono Hibernate, EclipseLink, OpenJPA, ecc.

A causa del dominio di Hibernate nel campo della tecnologia di risoluzione dell'accesso dati, lo standard JPA è sostanzialmente dominato da Hibernate.

SpringBoot è un fucile automatico

Spring Data JPA è fornito come strumento di interfaccia per gli sviluppatori per applicare il framework Hibernate. Il nostro Spring Boot fornisce un "modulo di dipendenza automatica" completamente automatizzato: spring-boot-starter-data-jpa


Struttura delle dipendenze POM:

Qualcuno ha domande sul file POM senza una citazione per Hibernate?



Il motivo è che, come mostrato nella figura sopra, spring-boot-starter-data-jpa dipende da hibernate-core, e quando si fa riferimento a spring-boot-starter-data-jpa, il progetto Maven introdurrà automaticamente il pacchetto da cui dipende.


application.yml Profilo:

Informazioni sulla fonte dei dati di configurazione a molla link ufficiale:Il login del link ipertestuale è visibile.

##########################################
###datasource - Specifica le informazioni di connessione al database MySQL
###spring.datasource.url: Indirizzo MySQL
###spring.datasource.user: Nome utente del database
###spring.datasource.password: La password del database
###spring.datasource.driverClassName: Corrispondente al driver del database
###spring.datasource.max-attivo: Specifica il numero massimo di connessioni attive nel pool di connessioni
###spring.datasource.max-inattivo: Specifica il numero massimo di connessioni libere nel pool di connessioni.
###spring.datasource.min-idle: Specifica il valore minimo che deve essere mantenuto (per pool di connessione DBCP e Tomcat)
###spring.datasource.initial-size: Specifica il numero di connessioni inizialmente stabilite quando il pool di connessioni viene avviato
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled Sia abilitato PersistenceExceptionTranslationPostProcessor, il valore predefinito è vero
###spring.datasource.abandon-when-percentage-fullsetsetset: la percentuale di connessioni abbandonate chiuse o segnalate quando il timeout viene abbandonato
###spring.datasource.allow-pool-suspension Quando si utilizza Hikari pool, la possibilità di mettere in pausa il pool di connessione è impostato su falso
###spring.datasource.alternate-username-allowedse sono permessi nomi utente alternativi.
###spring.datasource.auto-commitSpecifica se gli aggiornamenti vengono automaticamente confermati.
###spring.datasource.catalog specifica il catalogo predefinito.
###spring.datasource.commit-on-return stabilisce se compromettere tutte le transazioni in sospeso quando la connessione viene restituita
###spring.datasource.connection-init-sql specifica che la connessione viene creata e aggiunta all'SQL eseguito prima del pool di connessioni.
###spring.datasource.connection-init-sqls Quando si utilizza il pool di connessione DBCP, specifica l'sql da eseguire all'inizializzazione
###spring.datasource.connection-properties. [chiave]Specifica gli attributi da configurare quando si utilizza il pool di connessione DBCP
###spring.datasource.connection-test-query specifica l'istruzione SQL che verifica la legittimità dell'esecuzione della connessione
###spring.datasource.connection-timeoutSpecifica il tempo di timeout per la connessione, in millisecondi.
###spring.datasource.continue-on-error-Quando inizializzi il database, incontrando un errore se continuare o meno, il predefinito è falso
###spring.datasource.data specifica lo script Data (DML)
###spring.datasource.data-source-class-name Specifica il nome completamente qualificato della sorgente dati.
###spring.datasource.data-source-jndi specifica l'indirizzo del jndi
###spring.datasource.data-source-properties. Quando si utilizza il pool di connessione Hikari, specificare gli attributi da impostare
###spring.datasource.db-properties utilizza il pool di connessioni Tomcat, specificando le proprietà da impostare
###spring.datasource.default-auto-commit viene automaticamente confermato.
###spring.datasource.default-catalog specifica il catalogo che si collega al predefinito.
###spring.datasource.default-read-onlyWhether impostare la connessione predefinita su sola lettura.
###spring.datasource.default-transaction-isolationSpecifica il livello di isolamento predefinito per le transazioni connesse.
###spring.datasource.driver-class-name specifica il nome della classe del driver, che viene automaticamente rilevato dall'URL jdbc di default.
###spring.datasource.fair-queue Se utilizzare le connessioni FIFO.
###spring.datasource.health-check-properties. [chiave] Attributo passato quando si usa il pool di connessione Hikari durante il controllo del battito cardiaco
###spring.datasource.idle-timeout Specifica per quanto tempo la connessione non viene utilizzata, impostata di default come inattiva
###spring.datasource.ignore-exception-on-preloadO meno che l'eccezione venga ignorata quando il pool di connessione viene inizializzato.
###spring.datasource.init-sqlsql che viene eseguito quando viene creata una connessione
###spring.datasource.initial-size specifica il numero di connessioni inizialmente stabilite quando il pool di connessioni viene avviato
###spring.datasource.initialization-fail-fastQuando si crea un pool di connessioni, non è possibile creare un numero minimo specificato di connessioni per lanciare un'eccezione
###spring.datasource.initializeSpecifica se inizializzare la sorgente dati con data.sql, default: true
###spring.datasource.isolate-internal-queries specifica se le query interne devono essere messe in quarantena, passando di default a false
###spring.datasource.jdbc-interceptors Quando si utilizza il pool di connessione Tomcat, specifica l'intercettore jdbc e la separazione a punto e virgola
###spring.datasource.jdbc-url specifica l'URL JDBC.
###spring.datasource.jmx-enabled è abilitato di default: false
###spring.datasource.jndi-nameSpecifica il nome del jndi.
###spring.datasource.soglia di rilevamento perditeQuanti millisecondi rilevi una perdita di connessione usando il pool di connessione Hikari?
###spring.datasource.log-abbandonato utilizza il pool di connessione DBCP per tracciare istruzioni o connessioni abbandonate, il predefinito è falso
###spring.datasource.log-errori-di di validazioneQuando si utilizza il pool di connessione Tomcat, se stampare un errore di validazione.
###spring.datasource.login-timeout Specifica il tempo di timeout per la connessione al database.
###spring.datasource.max-età specifica l'età massima delle connessioni nel pool di connessioni
###spring.datasource.max-durata specifica la durata massima delle connessioni nel pool di connessioni, in millisecondi.
###spring.datasource.max-open-prepared-statements specifica il numero massimo di dichiarazioni preparate che vengono aperte.
###spring.datasource.max-wait specifica il tempo massimo di attesa affinché il pool di connessioni aspetti il ritorno della connessione, in millisecondi.
###spring.datasource.maximum-pool-sizeSpecifica il numero massimo di connessioni nel pool di connessioni, incluse quelle attive e inattive.
###spring.datasource.min-evictable-idle-time-millisSpecifica una connessione libera per il tempo minimo in cui può restare inattiva prima di poter essere liberata.
###spring.datasource.min-idle specifica il valore minimo che deve essere mantenuto (per pool di connessione DBCP e Tomcat)
###spring.datasource.minimum-idle specifica il numero minimo di connessioni libere mantenute da una connessione, e quando si utilizza HikariCP.
###spring.datasource.name Specifica il nome della fonte dati.
###spring.datasource.num-tests-per-eviction-run specifica il numero di oggetti quando si esegue ogni thread evitor di oggetti inattivi
###spring.datasource.passwordSpecifica la password del database.
###spring.datasource.platform specifica la Piattaforma (schema-${platform}.sql da usare per lo schema, che di default è: all
###spring.datasource.pool-nameSpecifica il nome del pool di connessione.
###spring.datasource.pool-prepared-statementsSpecifica se mettere in pool le statement.
###spring.datasource.propagare-interrupt-stateO meno propagare lo stato dell'interrupt se il thread viene interrotto in attesa della connessione.
###spring.datasource.solo lettura Quando si utilizza il pool di connessione Hikari, se è necessario segnare la sorgente dati come solo lettura
###spring.datasource.register-mbeans specifica se il pool di connessione Hikari registra MBeans JMX.
###spring.datasource.remove-abandoned specifica se eliminare una connessione immediatamente dopo il timeout abbandonato.
###spring.datasource.remove-abandoned-timeout Specifica il momento in cui la connessione dovrebbe essere abbandonata.
###spring.datasource.rollback-on-returnSe annullare una transazione in sospeso quando si restituisce una connessione.
###spring.datasource.schema specifica lo script Schema (DDL).
###spring.datasource.separator specifica il separatore di istruzioni per inizializzare lo script, di default: ;
###spring.datasource.sql-script-encoding specifica la codifica degli script SQL.
###spring.datasource.suspect-timeoutSpecifica il timeout prima di stampare la connessione abbandonata.
###spring.datasource.test-on-borrowQuando si prende in prestito una connessione da un pool di connessioni, se testare la connessione.
###spring.datasource.test-on-connect viene creato, se testare la connessione
###spring.datasource.test-on-returnSe la connessione viene restituita al pool di connessioni.
###spring.datasource.test-while-idleWhether eseguire un test di connessione quando la connessione è inattiva.
###spring.datasource.time-between-eviction-runs-millis Specifica l'intervallo di tempo operativo tra i controlli delle connessioni inattive, la pulizia abbandonata della connessione e la dimensionamento del pool di connessione inattiva
###spring.datasource.transaction-isolation specifica il livello di isolamento delle transazioni, che viene specificato quando si utilizza il pool di connessione Hikari
###spring.datasource.url specifica l'URL JDBC.
###spring.datasource.use-disposable-connection-façade avvolge la connessione per impedirne l'uso dopo la chiusura.
###spring.datasource.use-è uguale a se usare String.equals() per sostituire ==.
###spring.datasource.use-lock è bloccato sull'operazione di connessione
###spring.datasource.usernameSpecifica il nome del database.
###spring.datasource.validation-interval specifica quanti ms eseguire un controllo di connessione.
###spring.datasource.validation-query specifica l'istruzione SQL query per la validazione della connessione quando si ottiene una connessione.
###spring.datasource.validation-query-timeout Specifica il tempo di timeout per la query di validazione della connessione.
###spring.datasource.validation-timeout Imposta il tempo di timeout per la convalida della connessione, specificato quando si utilizza il pool di connessione Hikari
###spring.datasource.validator-class-name Il qualificatore completo del validatore usato per testare la query.
###spring.datasource.xa.data-source-class-name Specifica il qualificatore completo della sorgente dati.
###spring.datasource.xa.properties specifica le proprietà passate alla sorgente dati 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-attivo=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.iniziale-dimensione=10
##########################################
##SPring Informazioni sulla configurazione JPA
###spring.jpa.database specifica il database di destinazione.
###spring.jps.show-sq: Se visualizzare le istruzioni SQL
###spring.jpa.hibernate.ddl-auto specifica la modalità DDL (nessuno, validare, aggiornare, creare, creare-drop). Quando si utilizza un database incorporato, il valore predefinito è create-drop, altrimenti non è nessuno.
###spring.jpa.hibernate.naming-strategySpecifica la politica di denominazione.
###其他:
###spring.jpa.database-platformSpecifica il tipo di database target.
###spring.jpa.generate-ddl se inizializzare lo schema all'avvio, predefinito su false
###spring.jpa.hibernate.ddl-auto specifica la modalità DDL (nessuno, validare, aggiornare, creare, creare-drop). Quando si utilizza un database incorporato, il valore predefinito è create-drop, altrimenti non è nessuno.
###spring.jpa.hibernate.naming-strategySpecifica la politica di denominazione.
###spring.jpa.open-in-view registra OpenEntityManagerInViewInterceptor e collega JPA EntityManager al thread di richiesta, il predefinito è vero
###spring.jpa.properties aggiunge attributi aggiuntivi al provider JPA.
###spring.jpa.show-sql Se abilitare il log SQL è impostato di default su falso
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = vero
spring.jpa.hibernate.ddl-auto = aggiornamento
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

L'intera struttura del pacchetto



Configurazione della fonte dati:




Classe di entità:



Interfaccia operativa del database:

L'interfaccia operativa del database eredita dalla classe generica JpaRepository e, quando la eredita, acquisisce il potere divino che conferisce agli sviluppatori:



Possiamo chiamare direttamente questi metodi per eseguire operazioni nel database, e possiamo anche personalizzare HQL per completare altre operazioni che si adattino alla nostra personalità, come:

In questo codice, tramite @Query commento,Completato la stesura di HQLdove ":name" è coerente con il parametro nell'annotazione @Param qui sotto.

Nota: Il nome della tabella in HQL dovrebbe essere il nome della classe della mappa ORM, e HQL presenta alcune differenze rispetto alle istruzioni SQL tradizionali, come il significato di "*" diverso, ecc.

Se non sei abituato a usare HQL, puoi anche usare istruzioni SQL:



Il metodo sopra riportato è ancora efficace quando viene eseguito.nativeQuery to true significa usare il linguaggio SQL

Classe di controller:

Avvia il progetto

Hibernate mapperà automaticamente le classi di entità al database per creare tabelle di database rilevanti per noi, e corrisponderà automaticamente alle tabelle del database basandosi su annotazioni come @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO), ecc. Risparmi molto lavoro di tabulazione.


(Prima di iniziare il progetto, devi prima costruire il database e la tabella verrà creata automaticamente)



hibernate_sequence tabella è una strategia di generazione di id @GeneratedValue annotata, GenerationType.AUTO rappresenta la generazione automatica, a condizione che l'attributo id debba essere un attributo int o di tipo long; se si tratta di un id di tipo String, aggiungere questa annotazione sopra l'id riporterà immediatamente un errore. Pertanto, se si tratta dell'id del tipo String, non è necessario annotare l'id con @GeneratedValue (strategy = GenerationType.AUTO).

Richiedi un test

Completa la richiesta e il salvataggio dati tramite get e post rispettivamente.


evocareIl login del link ipertestuale è visibile.L'interfaccia POST richiede di aggiungere dati, come mostrato nella figura seguente:



La query del database è la seguente:



Scarica i dati attraverso la seguente interfaccia:

Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.



Nota: Come richiesto dall'interfaccia sopra, Java è molto sensibile alla sensibilità a maiuscole, sia che si tratti dell'indirizzo URL o dei parametri, deve essere sensibile alla maiuscula! Se una lettera è maiuscola o minuscola, la richiesta non raggiungerà l'interfaccia o il parametro sarà vuoto!

Il druido monitora le seguenti situazioni:






Infine, allega il codice sorgente:

Turisti, se volete vedere il contenuto nascosto di questo post, vi pregoRisposta


(Fine)





Precedente:Non è riuscito a configurare una DataSource
Prossimo:Tè pomeridiano Jieyou | Mercoledì 20 febbraio 2019
Pubblicato su 21/02/2019 02:19:13 |
Dai un'occhiata a imparare a imparare.
Pubblicato su 05/07/2019 17:27:02 |
Impara a imparare...
Pubblicato su 22/07/2019 14:15:41 |
Dai un'occhiata a imparare a imparare.
Pubblicato su 21/11/2019 21:08:12 |
【Combattimento Pratico】Tutorial di Costruzione del Progetto MySQL del Druido Spring Boot Hibernate
Pubblicato su 30/03/2020 13:52:54 |
Grazie mille
Pubblicato su 28/06/2020 15:13:11 |
Dai un'occhiata all'apprendimento del codice dei grandi
Pubblicato su 18/11/2020 23:57:19 |
Impara a imparare
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com