Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 36133|Svar: 7

[Källa] Spring Boot Hibernate Druid MySQL Project Construction Tutorial [med källkod]

[Kopiera länk]
Publicerad på 2019-02-20 14:44:57 | | | |
Jag är också halvfärdig i Java och är inte särskilt bekant med Spring Family Bucket, och jag har byggt ett projektramverk baserat på onlinetutorials och lite av min egen erfarenhet.
Projektmiljö:JDK-version: 1.8.0_171, MySQL-version: 5.7.17, spring boot: 2.1.1.RELEASE, utvecklingsverktyg: idé.

Hibernate och JPA

Webbprojektet i denna artikel använder Hibernate som persistenslagersramverk. I Spring Boot behöver vi förstå ett annat begrepp: JPA

Den föregående meningen kan vara tvetydig, men det betyder inte att JPA är ett begrepp i Spring Boot. Istället är det Java Persistence API, som översätts till kinesiska som: Java Persistence Layer API.

JPA är en standardspecifikation baserad på ORM (eller O/R-mappning), där JPA endast definierar standardregler och inte tillhandahåller någon implementation.

För närvarande är de huvudsakliga implementationerna av JPA Hibernate, EclipseLink, OpenJPA, etc.

På grund av Hibernates dominans inom dataåtkomstupplösningsteknologi domineras JPA-standarden i princip av Hibernate.

SpringBoot är ett automatgevär

Spring Data JPA tillhandahålls som ett gränssnittsverktyg för utvecklare att tillämpa Hibernate-ramverket. Vår Spring Boot tillhandahåller en helt automatiserad "automatisk beroendemodul": spring-boot-starter-data-jpa


POM-beroendestruktur:

Har någon frågor om pom-filen utan källhänvisning för viloläge?



Anledningen är att, som visas i figuren ovan, spring-boot-starter-data-jpa beror på hibernate-core, och när man refererar till spring-boot-starter-data-jpa kommer maven-projektet automatiskt att introducera det paket det är beroende av.


application.yml Profil:

Information om källan för fjäderkonfiguration – officiell länk:Inloggningen med hyperlänken är synlig.

##########################################
###datasource - Ange anslutningsinformationen för MySQL-databasen
###spring.datasource.url: MySQL address
###spring.datasource.user: Databasens användarnamn
###spring.datasource.password: Databasens lösenord
###spring.datasource.driverClassName: Motsvarar databasdrivrutinen
###spring.datasource.max-aktiv: Anger det maximala antalet aktiva anslutningar i anslutningspoolen
###spring.datasource.max-idle: Anger det maximala antalet fria anslutningar i anslutningspoolen.
###spring.datasource.min-idle: Specificerar det minsta värde som måste underhållas (för DBCP- och Tomcat-anslutningspooler)
###spring.datasource.initial-size: Specificerar antalet anslutningar som initialt etableras när anslutningspoolen startas
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled oavsett om PersistenceExceptionTranslationPostProcessor är aktiverad, är standardvärdet sant
###spring.datasource.abandon-when-percent-fullenanger andelen övergivna anslutningar som stängs eller rapporteras när timeouten avbryts
###spring.datasource.allow-pool-suspension När man använder Hikari pool sätts frågan om man tillåter att anslutningspoolen pausas till false
###spring.datasource.alternate-username-allowedom alternativa användarnamn är tillåtna.
###spring.datasource.auto-commitSpecificerar om uppdateringar automatiskt commit.
###spring.datasource.catalog specificerar standardkatalogen.
###spring.datasource.commit-on-return anger om alla utestående transaktioner ska committas när anslutningen returneras
###spring.datasource.connection-init-sql specificerar att anslutningen skapas och läggs till i SQL-filen som körs före anslutningspoolen.
###spring.datasource.connection-init-sqls När DBCP-anslutningspoolen används, ange vilken sql som ska köras vid initiering
###spring.datasource.connection-properties. [nyckel]Specificerar vilka attribut som ska konfigureras när DBCP-anslutningspoolen används
###spring.datasource.connection-test-query specificerar SQL-satsen som verifierar äktheten i anslutningsexekveringen
###spring.datasource.connection-timeoutSpecificerar timeout-tiden för anslutningen, i millisekunder.
###spring.datasource.continue-on-errorNär databasen initieras och ett fel uppstår om man ska fortsätta eller inte, är standardvärdet falskt
###spring.datasource.data specificerar Data (DML)-skriptet
###spring.datasource.data-source-class-name Specificerar det fullt kvalificerade namnet på datakällan.
###spring.datasource.data-source-jndi anger adressen till jndi
###spring.datakälla.data-källa-egenskaper. När du använder Hikari-anslutningspoolen, ange vilka attribut som ska sättas
###spring.datasource.db-egenskaper använder Tomcat-anslutningspoolen och specificerar vilka egenskaper som ska sättas
###spring.datasource.default-auto-commit är automatiskt committad.
###spring.datasource.default-catalog specificerar katalogen som ansluter till standarden.
###spring.datasource.default-read-onlyFör att sätta standardanslutningen till skrivskyddad.
###spring.datasource.default-transaction-isolationSpecificerar standardisoleringsnivån för anslutna transaktioner.
###spring.datasource.driver-class-name specificerar drivrutinens klassnamn, vilket automatiskt upptäcks från jdbc-URL:en som standard.
###spring.datasource.fair-queue Om FIFO ska användas returnerar anslutningar.
###spring.datasource.health-check-properties. [nyckel] Attribut passerat när man använder Hikari-anslutningspoolen under hjärtslagskontroll
###spring.datasource.idle-timeoutSpecificerar hur länge anslutningen inte används, vilket som standard är inställt på inaktiv
###spring.datasource.ignore-exception-on-pre-loadOavsett om undantaget ignoreras när anslutningspoolen initieras.
###spring.datasource.init-sqlsql som körs när en anslutning skapas
###spring.datasource.initial-size specificerar antalet anslutningar som initialt etableras när anslutningspoolen startas
###spring.datasource.initialization-fail-fastNär man skapar en anslutningspool är det inte möjligt att skapa ett specificerat minimiantal anslutningar för att kasta ett undantag
###spring.datasource.initializeSpecificera om datakällan ska initieras med data.sql, standard: true
###spring.datasource.isolate-internal-queries anger om interna frågor ska sättas i karantän, med standardvärdet falskt
###spring.datasource.jdbc-interceptors När du använder Tomcat-anslutningspoolen, ange jdbc-interceptor- och semikolonseparationen
###spring.datasource.jdbc-url specificerar JDBC:s URL.
###spring.datasource.jmx-enabled är aktiverad som standard: false
###spring.datasource.jndi-nameSpecificerar namnet på jndi.
###spring.datasource.leak-detection-threshold Hur många millisekunder upptäcker du en anslutningsläcka när du använder Hikari-anslutningspoolen?
###spring.datasource.log-abandoned använder DBCP-anslutningspoolen för att spåra abandoned statements eller anslutningar är standarden falsk
###spring.datasource.log-valideringsfelNär Tomcat-anslutningspoolen används, om man ska skriva ut ett valideringsfel.
###spring.datasource.login-timeoutSpecificerar timeout-tiden för anslutning till databasen.
###spring.datasource.max-ålder anger den maximala åldern på anslutningar i anslutningspoolen
###spring.datasource.max-livslängd anger den maximala livslängden för anslutningar i anslutningspoolen, i millisekunder.
###spring.datasource.max-open-prepared-statementsspecificerar det maximala antalet förberedda satser som öppnas.
###spring.datasource.max-wait specificerar den maximala väntetiden för anslutningspoolen att vänta på att anslutningen ska återvända, i millisekunder.
###spring.datasource.maximum-pool-sizeSpecificerar det maximala antalet anslutningar i anslutningspoolen, inklusive aktiva och inaktiva anslutningar.
###spring.datasource.min-evictable-idle-time-millisSpecificerar en fri anslutning under den minsta tid den kan vara inaktiv innan den kan rensas.
###spring.datasource.min-idle specificerar det minsta värde som måste underhållas (för DBCP- och Tomcat-anslutningspooler)
###spring.datasource.minimum-idle anger det minsta antalet fria anslutningar som upprätthålls av en anslutning, och när man använder HikariCP.
###spring.datasource.name Ange namnet på datakällan.
###spring.datasource.num-tests-per-eviction-run specificerar antalet objekt när varje idle object evitor-tråd körs
###spring.datasource.passwordAnge databaslösenordet.
###spring.datasource.platform specificerar plattformen (schema-${platform}.sql som ska användas för schemat, vilket som standard är: alla
###spring.datasource.pool-nameSpecificerar namnet på anslutningspoolen.
###spring.datasource.pool-prepared-statementsSpecificerar om satser ska poolas.
###spring.datasource.propagate-interrupt-stateFör att propagera avbrottstillståndet om tråden avbryts medan man väntar på anslutningen.
###spring.datasource.read-onlyNär man använder Hikari-anslutningspoolen, om man ska markera datakällan som skrivskyddad
###spring.datasource.register-mbeans specificerar om Hikari-anslutningspoolen registrerar JMX MBeans.
###spring.datasource.remove-abandoned anger om en anslutning ska tas bort omedelbart efter den övergivna timeouten.
###spring.datasource.remove-abandoned-timeoutAnger tidpunkten då anslutningen ska avbrytas.
###spring.datasource.rollback-on-returnFör att rulla tillbaka en väntande transaktion när en anslutning returneras.
###spring.datasource.schema specificerar Schema (DDL)-skriptet.
###spring.datasource.separator specificerar satsseparatorn för att initiera skriptet, standard: ;
###spring.datasource.sql-script-encoding specificerar SQL-skriptkodning.
###spring.datasource.suspect-timeoutSpecificerar timeouten innan den övergivna anslutningen skrivs ut.
###spring.datasource.test-on-borrowNär man lånar en anslutning från en anslutningspool, om man ska testa anslutningen.
###spring.datasource.test-on-connect skapas, oavsett om anslutningen ska testas
###spring.datasource.test-on-returnOavsett om anslutningen returneras till anslutningspoolen.
###spring.datasource.test-while-idleHuruvida man ska utföra ett anslutningstest när anslutningen är inaktiv.
###spring.datasource.time-between-eviction-runs-millis Specificerar driftstidsintervallet mellan vilofyllda anslutningskontroller, sanering av övergivna anslutningar och storlek på ledig anslutningspool
###spring.datasource.transaction-isolation specificerar transaktionsisoleringsnivån, som anges vid användning av Hikari-anslutningspoolen
###spring.datasource.url specificerar JDBC:s URL.
###spring.datasource.use-disposable-connection-façade omsluter anslutningen för att förhindra att den används efter att den stängts.
###spring.datasource.use-är lika med om man ska använda String.equals() för att ersätta ==.
###spring.datasource.use-lock är låst på anslutningsoperationen
###spring.datasource.usernameAnge databasens namn.
###spring.datasource.validation-interval specificerar hur många ms som ska utföra en anslutningskontroll.
###spring.datasource.validation-query specificerar SQL-frågesatsen för anslutningsvalidering när en anslutning erhålls.
###spring.datasource.validation-query-timeoutSpecificerar timeout-tiden för anslutningsvalideringsfrågan.
###spring.datasource.validation-timeoutSätter timeout-tiden för anslutningsvalidering, vilket anges vid användning av Hikari-anslutningspoolen
###spring.datasource.validator-class-name Den fullständiga validator-kvalificeraren som används för att testa frågan.
###spring.datasource.xa.data-source-class-name Specificerar den fullständiga kvalificeringen för datakällan.
###spring.datasource.xa.properties specificerar de egenskaper som skickas till XA-datakällan
###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-aktiv=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring JPA-konfigurationsinformation
###spring.jpa.database specificerar måldatabasen.
###spring.jps.show-sq: Om SQL-satser ska visas
###spring.jpa.hibernate.ddl-auto specificerar DDL-läge (none, validate, update, create, create-drop). När man använder en inbäddad databas är standarden skapa-släpp, annars är det ingen alls.
###spring.jpa.hibernate.nameing-strategySpecificera namngivningspolicyn.
###其他:
###spring.jpa.database-platformSpecificerar typen av måldatabas.
###spring.jpa.generate-ddl om schemat ska initieras vid uppstart, går som standard till false
###spring.jpa.hibernate.ddl-auto specificerar DDL-läge (none, validate, update, create, create-drop). När man använder en inbäddad databas är standarden skapa-släpp, annars är det ingen alls.
###spring.jpa.hibernate.nameing-strategySpecificera namngivningspolicyn.
###spring.jpa.open-in-view registrerar OpenEntityManagerInViewInterceptor och binder JPA EntityManager till förfrågningstråden, standarden är sann
###spring.jpa.properties lägger till ytterligare attribut till JPA-leverantören.
###spring.jpa.show-sql Om man aktiverar SQL-logg är som standard inställt på false
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.nameing-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

Hela paketstrukturen



Konfiguration av datakälla:




Entitetsklass:



Databasoperationsgränssnitt:

Databasoperationsgränssnittet ärver från JpaRepository-generiska klassen, och när det ärver det får det den gudomliga makt det ger utvecklare:



Vi kan direkt anropa dessa metoder för att utföra databasoperationer, och vi kan också anpassa HQL för att utföra andra operationer som passar vår personlighet, såsom:

I denna kod, genom @Query kommentar,Färdigställde skrivandet av HQLdär ":name" är konsistent med parametern i @Param-anteckningen nedan.

Observera: Tabellnamnet i HQL bör vara klassnamnet på ORM-kartan, och HQL har vissa skillnader från traditionella SQL-satser, såsom att betydelsen av "*" är annorlunda, etc.

Om du inte är van vid att använda HQL kan du också använda SQL-satser:



Ovanstående metod är fortfarande effektiv när den utförs.nativeQuery till true betyder att använda SQL-språket

Kontrollklass:

Starta projektet

Hibernate mappar automatiskt entitetsklasser till databasen för att skapa relevanta databastabeller åt oss, och den matchar automatiskt databastabeller baserat på anteckningar som @Table, @Column, @Id, @GeneratedValue (strategi = GenerationType.AUTO) osv. Spara mycket tabellarbete.


(Innan du startar projektet måste du först bygga databasen, och tabellen kommer att skapas automatiskt)



hibernate_sequence tabell är en id-genereringsstrategi @GeneratedValue annoterad, GenerationType.AUTO representerar automatisk generering, förutsatt att id-attributet måste vara ett int- eller long type-attribut, om det är ett id av strängtyp så rapporterar man omedelbart ett fel om man lägger till denna annotering ovanpå id. Därför, om det gäller id för String-typen, behöver du inte annotera id med @GeneratedValue (strategy = GenerationType.AUTO).

Begär ett test

Fullständig dataförfrågan och datalagring via get respektive post.


åkallaInloggningen med hyperlänken är synlig.Gränssnittets POST-begäran om att lägga till data, som visas i följande figur:



Databasens fråga är som följer:



Få datan via följande gränssnitt:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.



Notera: Som begärts av ovanstående gränssnitt är Java mycket känsligt för kasuskänslighet, oavsett om det gäller URL-adressen eller parametrarna, måste det vara kasuskänsligt! Om en bokstav är versaler eller gemener kommer det att göra att förfrågan misslyckas med att nå gränssnittet eller så blir parametern tom!

Druiden övervakar följande situationer:






Slutligen, bifoga källkoden:

Turister, om ni vill se det dolda innehållet i detta inlägg, snällaSvar


(Slut)





Föregående:Misslyckades med att konfigurera en DataSource
Nästa:Jieyou eftermiddagste | Onsdag 20 februari 2019
Publicerad på 2019-02-21 02:19:13 |
Ta en titt på att lära sig att lära sig.
Publicerad på 2019-07-05 17:27:02 |
Lär dig att lära dig...
Publicerad på 2019-07-22 14:15:41 |
Ta en titt på att lära sig att lära sig.
Publicerad på 2019-11-21 21:08:12 |
【Practical Combat】Spring Boot Hibernate Druid MySQL Project Construction Tutorial
Publicerad på 2020-03-30 13:52:54 |
Tack så mycket
Publicerad på 2020-06-28 15:13:11 |
Ta en titt på kodinlärningen hos de stora aktörerna
Publicerad på 2020-11-18 23:57:19 |
Lär dig att lära dig
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com