Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 36133|Svare: 7

[Kilde] Spring Boot Hibernate Druid MySQL Project Construction Tutorial [med kildekode]

[Kopier lenke]
Publisert på 20.02.2019 14:44:57 | | | |
Jeg er også halvhjertet i Java, og jeg er ikke så kjent med Spring Family Bucket, og jeg har bygget et prosjektrammeverk basert på nettbaserte veiledninger og noe av min egen erfaring.
Prosjektmiljø:JDK-versjon: 1.8.0_171, MySQL-versjon: 5.7.17, spring boot: 2.1.1.RELEASE, utviklingsverktøy: idé.

Dvale og JPA

Webprosjektet i denne artikkelen bruker Hibernate som rammeverk for persistenslaget. I Spring Boot må vi forstå et annet konsept: JPA

Den forrige setningen kan være tvetydig, men det betyr ikke at JPA er et konsept i Spring Boot. I stedet er det Java Persistence API, som oversettes til kinesisk som: Java Persistence Layer API.

JPA er en standardspesifikasjon basert på ORM (eller O/R-kartlegging), der JPA kun definerer standardregler og ikke gir implementering.

For øyeblikket er hovedimplementasjonene av JPA Hibernate, EclipseLink, OpenJPA, osv.

På grunn av Hibernates dominans innen dataaksessoppløsningsteknologi, domineres JPA-standarden i hovedsak av Hibernate.

SpringBoot er et automatgevær

Spring Data JPA tilbys som et grensesnittverktøy for utviklere til å bruke Hibernate-rammeverket. Vår Spring Boot tilbyr en fullautomatisert «automatisk avhengighetsmodul»: spring-boot-starter-data-jpa


POM-avhengighetsstruktur:

Er det noen som har spørsmål om pom-filen uten henvisning for dvale?



Årsaken er at, som vist i figuren over, spring-boot-starter-data-jpa avhenger av hibernate-core, og når man refererer til spring-boot-starter-data-jpa, vil maven-prosjektet automatisk introdusere pakken det er avhengig av.


application.yml Profil:

Kildeinformasjon om fjærkonfigurasjon, offisiell lenke:Innloggingen med hyperkoblingen er synlig.

##########################################
###datasource - Spesifiser tilkoblingsinformasjonen til MySQL-databasen
###spring.datasource.url: MySQL-adresse
###spring.datasource.user: Databasebrukernavn
###spring.datasource.password: Databasepassordet
###spring.datasource.driverClassName: Tilsvarer databasedriveren
###spring.datasource.max-aktiv: Angir maksimalt antall aktive tilkoblinger i tilkoblingspoolen
###spring.datasource.max-idle: Angir maksimalt antall frie tilkoblinger i tilkoblingspoolen.
###spring.datasource.min-idle: Angir minimumsverdien som må opprettholdes (for DBCP- og Tomcat-tilkoblingspooler)
###spring.datasource.initial-size: Angir antall tilkoblinger som først etableres når tilkoblingspoolen startes
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled om PersistenceExceptionTranslationPostProcessor er aktivert, er standard sant
###spring.datasource.abandon-when-percenten-fullenfastsetter prosentandelen forlatte tilkoblinger som lukkes eller rapporteres når timeouten er forlatt
###spring.datasource.allow-pool-suspension Når du bruker Hikari pool, settes det til false om tilkoblingspoolen skal pauses
###spring.datasource.alternate-username-allowedom alternative brukernavn er tillatt.
###spring.datasource.auto-commitSpesifiserer om oppdateringer blir automatisk committet.
###spring.datasource.catalog spesifiserer standardkatalogen.
###spring.datasource.commit-on-return bestemmer om alle utestående transaksjoner skal committes når tilkoblingen returneres
###spring.datasource.connection-init-sql spesifiserer at tilkoblingen opprettes og legges til SQL-filen som kjøres før tilkoblingspoolen.
###spring.datasource.connection-init-sqls Når du bruker DBCP-tilkoblingspoolen, spesifiser SQL-en som skal kjøres ved initialisering
###spring.datasource.connection-properties. [nøkkel]Angir attributtene som skal konfigureres når DBCP-tilkoblingspoolen brukes
###spring.datasource.connection-test-query spesifiserer SQL-setningen som verifiserer legitimiteten til tilkoblingsutførelsen
###spring.datasource.connection-timeoutAngir timeout-tiden for forbindelsen, i millisekunder.
###spring.datasource.continue-on-errorNår man initialiserer databasen og opplever en feil om man skal fortsette eller ikke, er standarden feil
###spring.datasource.data spesifiserer Data (DML)-skriptet
###spring.datasource.data-source-class-name Angir det fullt kvalifiserte navnet på datakilden.
###spring.datasource.data-source-jndi spesifiserer adressen til jndi
###spring.datakilde.datakilde-egenskaper. Når du bruker Hikari-tilkoblingspoolen, spesifiser attributtene som skal settes
###spring.datasource.db-egenskaper bruker Tomcat-tilkoblingspoolen, som spesifiserer egenskapene som skal settes
###spring.datasource.default-auto-commit blir automatisk committet.
###spring.datasource.default-catalog spesifiserer katalogen som kobles til standarden.
###spring.datasource.default-read-onlyEnten for å sette standardtilkoblingen til skrivebeskyttet.
###spring.datasource.default-transaction-isolation Angir standard isolasjonsnivå for tilkoblede transaksjoner.
###spring.datasource.driver-class-name angir klassenavnet til driveren, som automatisk oppdages fra jdbc-URL-en som standard.
###spring.datasource.fair-queue Om FIFO skal brukes returnerer tilkoblinger.
###spring.datasource.health-check-properties. [nøkkel] Attributt passert ved bruk av Hikari-tilkoblingspoolen under hjerteslagssjekk
###spring.datasource.idle-timeoutSpesifiserer hvor lenge tilkoblingen ikke brukes, som som standard settes til inaktiv
###spring.datasource.ignore-exception-on-pre-loadOm unntaket ignoreres når tilkoblingspoolen initialiseres.
###spring.datasource.init-sqlsql som kjøres når en tilkobling opprettes
###spring.datasource.initial-size angir antall tilkoblinger som først etableres når tilkoblingspoolen startes
###spring.datasource.initialization-fail-fastNår man oppretter en tilkoblingspool, er det ikke mulig å lage et spesifisert minimum antall tilkoblinger for å kaste et unntak
###spring.datasource.initializeSpesifiser om datakilden skal initialiseres med data.sql, standard: true
###spring.datasource.isolate-internal-queries angir om interne spørringer skal settes i karantene, med standard false
###spring.datasource.jdbc-interceptors Når du bruker Tomcat-tilkoblingspoolen, spesifiser jdbc-interceptor- og semikolonseparasjonen
###spring.datasource.jdbc-url spesifiserer JDBC-URL-en.
###spring.datasource.jmx-enabled er aktivert som standard: false
###spring.datasource.jndi-nameSpesifiserer navnet på jndi.
###spring.datasource.leak-detection-threshold Hvor mange millisekunder oppdager du en tilkoblingslekkasje når du bruker Hikari-tilkoblingspoolen?
###spring.datasource.log-abandoned bruker DBCP-tilkoblingspoolen for å spore abandoned statements eller tilkoblinger, er standarden false
###spring.datasource.log-valideringsfeilNår man bruker Tomcat-tilkoblingspoolen, om man skal skrive ut en valideringsfeil.
###spring.datasource.login-timeoutAngir tidsavbruddstiden for tilkobling til databasen.
###spring.datasource.max-age angir maksimal alder på tilkoblingene i tilkoblingspoolen
###spring.datasource.max-levetid spesifiserer maksimal levetid for tilkoblinger i tilkoblingspoolen, i millisekunder.
###spring.datasource.max-open-prepared-statements spesifiserer maksimalt antall prepared statements som åpnes.
###spring.datasource.max-wait spesifiserer maksimal ventetid for tilkoblingspoolen til å vente på at tilkoblingen skal returnere, i millisekunder.
###spring.datasource.maximum-pool-sizespesifiserer maksimalt antall tilkoblinger i tilkoblingspoolen, inkludert aktive og inaktive tilkoblinger.
###spring.datasource.min-evictable-idle-time-millisSpesifiserer en fri tilkobling for den minste tiden den kan være inaktiv før den kan slettes.
###spring.datasource.min-idle spesifiserer minimumsverdien som må vedlikeholdes (for DBCP- og Tomcat-tilkoblingspooler)
###spring.datasource.minimum-idle spesifiserer minimum antall frie tilkoblinger som opprettholdes av en tilkobling, og når man bruker HikariCP.
###spring.datasource.name Spesifiser navnet på datakilden.
###spring.datasource.num-tests-per-eviction-run spesifiserer antall objekter når hver inaktiv objekt-evitortråd kjøres
###spring.datasource.passwordSpesifiser databasepassordet.
###spring.datasource.platform spesifiserer plattformen (schema-${platform}.sql som skal brukes for skjemaet, som som standard er: alle
###spring.datasource.pool-nameSpesifiserer navnet på tilkoblingspoolen.
###spring.datasource.pool-prepared-statementsSpesifiserer om man skal poole setninger.
###spring.datasource.propagate-interrupt-stateOmhandler å videreføre avbruddstilstanden hvis tråden blir avbrutt mens den venter på tilkoblingen.
###spring.datasource.read-onlyNår du bruker Hikari-tilkoblingspoolen, om datakilden skal markeres som skrivebeskyttet
###spring.datasource.register-mbeans spesifiserer om Hikari-tilkoblingspoolen registrerer JMX MBeans.
###spring.datasource.remove-abandoned spesifiserer om en tilkobling skal slettes umiddelbart etter den forlatte timeouten.
###spring.datasource.remove-abandoned-timeoutSpesifiserer tidspunktet da forbindelsen skal avbrytes.
###spring.datasource.rollback-on-returnEnten for å rulle tilbake en ventende transaksjon når en tilkobling returneres.
###spring.datasource.schema spesifiserer Schema (DDL)-skriptet.
###spring.datasource.separator spesifiserer setningsseparatoren for initialisering av skriptet, standard: ;
###spring.datasource.sql-script-encoding spesifiserer SQL-skriptkoding.
###spring.datasource.suspect-timeoutSpesifiserer timeout før den avbrutte forbindelsen skrives ut.
###spring.datasource.test-on-borrowNår man låner en tilkobling fra en tilkoblingspool, om man skal teste forbindelsen.
###spring.datasource.test-on-connect opprettes, enten tilkoblingen skal testes
###spring.datasource.test-on-returnEnten tilkoblingen returneres til tilkoblingspoolen.
###spring.datasource.test-while-idleOm å utføre en tilkoblingstest når tilkoblingen er inaktiv.
###spring.datasource.time-between-eviction-runs-millis Spifiser operasjonstidsintervallet mellom kontroller av ledige tilkoblinger, opprydding av forlatte forbindelser og størrelse på inaktive tilkoblingspooler
###spring.datasource.transaction-isolation spesifiserer transaksjonsisolasjonsnivået, som spesifiseres når man bruker Hikari-tilkoblingspoolen
###spring.datasource.url spesifiserer JDBC-URL-en.
###spring.datasource.use-disposable-connection-façade omslutter forbindelsen for å forhindre at den brukes etter at den er lukket.
###spring.datasource.use-equals om man skal bruke String.equals() for å erstatte ==.
###spring.datasource.use-lock er låst på tilkoblingsoperasjonen
###spring.datasource.usernameSpesifiser databasenavnet.
###spring.datasource.validation-interval angir hvor mange ms som skal utføres en tilkoblingssjekk.
###spring.datasource.validation-query spesifiserer SQL-spørringssetningen for tilkoblingsvalidering når man henter en tilkobling.
###spring.datasource.validation-query-timeoutAngir timeout-tiden for tilkoblingsvalideringsforespørselen.
###spring.datasource.validation-timeoutSetter timeout-tiden for tilkoblingsvalidering, som spesifiseres når man bruker Hikari-tilkoblingspoolen
###spring.datasource.validator-class-name Den fulle validator-kvalifikatoren som brukes til å teste spørringen.
###spring.datasource.xa.data-source-class-name Spesifiserer den fulle kvalifikatoren for datakilden.
###spring.datasource.xa.properties spesifiserer egenskapene som sendes til XA-datakilden
###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-konfigurasjonsinformasjon
###spring.jpa.database spesifiserer måldatabasen.
###spring.jps.show-sq: Om man skal vise SQL-setninger
###spring.jpa.hibernate.ddl-auto spesifiserer DDL-modus (none, validate, update, create, create-drop). Når man bruker en innebygd database, er standarden create-drop, ellers er det ingen.
###spring.jpa.hibernate.naming-strategySpesifiser navnepolitikken.
###其他:
###spring.jpa.database-platformSpesifiserer typen måldatabase.
###spring.jpa.generate-ddl om skjemaet skal initialiseres ved oppstart, går som standard til false
###spring.jpa.hibernate.ddl-auto spesifiserer DDL-modus (none, validate, update, create, create-drop). Når man bruker en innebygd database, er standarden create-drop, ellers er det ingen.
###spring.jpa.hibernate.naming-strategySpesifiser navnepolitikken.
###spring.jpa.open-in-view registrerer OpenEntityManagerInViewInterceptor og binder JPA EntityManager til forespørselstråden, standarden er sann
###spring.jpa.properties legger til flere attributter til JPA-leverandøren.
###spring.jpa.show-sql Om man aktiverer SQL-logg er satt til false som standard
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

Hele pakkestrukturen



Konfigurasjon av datakilde:




Entitetsklasse:



Databaseoperasjonsgrensesnitt:

Databaseoperasjonsgrensesnittet arver fra JpaRepository generiske klasse, og når det arver det, får det den guddommelige kraften det gir utviklerne:



Vi kan direkte kalle disse metodene for å utføre databaseoperasjoner, og vi kan også tilpasse HQL for å utføre andre operasjoner som passer vår personlighet, som:

I denne koden, gjennom @Query kommentar,Fullførte skrivingen av HQLhvor ":name" er konsistent med parameteren i den @Param annotasjonen nedenfor.

Merk: Tabellnavnet i HQL bør være klassenavnet på ORM-kartet, og HQL har noen forskjeller fra tradisjonelle SQL-setninger, som at betydningen av "*" er annerledes, osv.

Hvis du ikke er vant til å bruke HQL, kan du også bruke SQL-setninger:



Metoden ovenfor er fortsatt effektiv når den utføres.nativeQuery til true betyr bruk av SQL-språket

Controller-klasse:

Start prosjektet

Hibernate vil automatisk mappe entitetsklasser til databasen for å lage relevante databasetabeller for oss, og den vil automatisk matche databasetabeller basert på annotasjoner som @Table, @Column, @Id, @GeneratedValue (strategi = GenerationType.AUTO), osv. Det sparer mye tabellarbeid.


(Før du starter prosjektet, må du bygge databasen først, og tabellen vil bli opprettet automatisk)



hibernate_sequence tabellen er en id-genereringsstrategi @GeneratedValue annotert, GenerationType.AUTO representerer automatisk generering, forutsatt at id-attributtet må være et int- eller long type-attributt; hvis det er en id av strengtype, vil det å legge til denne annotasjonen oppå id umiddelbart rapportere en feil. Derfor, hvis det gjelder id-en til String-typen, trenger du ikke å annotere id med @GeneratedValue (strategy = GenerationType.AUTO).

Be om en test

Fullfør dataforespørsel og lagring via get og post henholdsvis.


påkalleInnloggingen med hyperkoblingen er synlig.Grensesnittets POST ber om å legge til data, som vist i følgende figur:



Databasespørringen er som følger:



Få dataene gjennom følgende grensesnitt:

Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.



Merk: Som forespurt av grensesnittet ovenfor, er Java svært følsom for kasusfølsomhet, enten det er URL-adressen eller parameterne, det må være kasusfølsomt! Hvis en bokstav er stor eller liten, vil det føre til at forespørselen ikke når grensesnittet, eller parameteren vil være tom!

Druiden overvåker følgende situasjoner:






Til slutt, legg ved kildekoden:

Turister, hvis dere vil se det skjulte innholdet i dette innlegget, vær så snillSvare


(Slutt)





Foregående:Mislyktes i å konfigurere en DataSource
Neste:Jieyou ettermiddagste | Onsdag 20. februar 2019
Publisert på 21.02.2019 02:19:13 |
Ta en titt på læring for å lære.
Publisert på 05.07.2019 17:27:02 |
Lær å lære...
Publisert på 22.07.2019 14:15:41 |
Ta en titt på læring for å lære.
Publisert på 21.11.2019 21:08:12 |
【Practical Combat】Spring Boot Hibernate Druid MySQL Project Construction Tutorial
Publisert på 30.03.2020 13:52:54 |
Tusen takk
Publisert på 28.06.2020 15:13:11 |
Ta en titt på kodelæringen til de store aktørene
Publisert på 18.11.2020 23:57:19 |
Lær å lære
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com