Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 36133|Svar: 7

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

[Kopier link]
Opslået på 20/02/2019 14.44.57 | | | |
Jeg er også halvfærdig med Java, og jeg er ikke særlig fortrolig med fjederfamiliens bucket, og jeg har bygget et projektframework baseret på online tutorials og noget af min egen erfaring.
Projektmiljø:JDK-version: 1.8.0_171, MySQL-version: 5.7.17, spring boot: 2.1.1.RELEASE, udviklingsværktøjer: idé.

Hibernat og JPA

Webprojektet i denne artikel bruger Hibernate som persistenslagsrammeværket. I Spring Boot skal vi forstå et andet begreb: JPA

Den forrige sætning kan være tvetydig, men det betyder ikke, at JPA er et begreb i Spring Boot. I stedet er det Java Persistence API, som oversættes til kinesisk som: Java Persistence Layer API.

JPA er en standardspecifikation baseret på ORM (eller O/R-mapping), hvor JPA kun definerer standardregler og ikke leverer implementering.

I øjeblikket er de vigtigste implementeringer af JPA Hibernate, EclipseLink, OpenJPA osv.

På grund af Hibernates dominans inden for dataadgangsopløsningsteknologi domineres JPA-standarden grundlæggende af Hibernate.

SpringBoot er et automatgevær

Spring Data JPA leveres som et grænsefladeværktøj for udviklere, der kan anvende Hibernate-rammeværket. Vores Spring Boot tilbyder et fuldautomatisk "automatisk afhængighedsmodul": spring-boot-starter-data-jpa


POM Afhængighedsstruktur:

Er der nogen, der har spørgsmål om pom-filen uden en henvisning for dvale?



Årsagen er, at som vist i figuren ovenfor, afhænger spring-boot-starter-data-jpa af hibernate-core, og når man refererer til spring-boot-starter-data-jpa, vil maven-projektet automatisk introducere den pakke, det er afhængigt af.


application.yml Profil:

Kildeinformation om fjederkonfiguration – officielt link:Hyperlink-login er synlig.

##########################################
###datasource - Angiv forbindelsesinformationen til MySQL-databasen
###spring.datasource.url: MySQL address
###spring.datasource.user: Databasebrugernavn
###spring.datasource.password: Databaseadgangskoden
###spring.datasource.driverClassName: Svarende til databasedriveren
###spring.datasource.max-aktiv: Angiver det maksimale antal aktive forbindelser i forbindelsespuljen
###spring.datasource.max-idle: Angiver det maksimale antal frie forbindelser i forbindelsespuljen.
###spring.datasource.min-idle: Angiver den minimumsværdi, der skal vedligeholdes (for DBCP- og Tomcat-forbindelsespools)
###spring.datasource.initial-size: Angiver antallet af forbindelser, der oprindeligt etableres, når forbindelsespuljen startes
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled om PersistenceExceptionTranslationPostProcessor er aktiveret, er standarden sand.
###spring.datasource.abandon-when-percenten-fullensætter procentdelen af forladte forbindelser, der lukkes eller rapporteres, når timeouten opgives
###spring.datasource.allow-pool-suspension Når man bruger Hikari pool, sættes forbindelsespoolen til false
###spring.datasource.alternate-username-allowedwhether alternative brugernavne er tilladt.
###spring.datasource.auto-commitSpecificerer, om opdateringer automatisk committes.
###spring.datasource.catalog angiver standardkataloget.
###spring.datasource.commit-on-return fastsætter, om alle udestående transaktioner skal committes, når forbindelsen returneres.
###spring.datasource.connection-init-sql angiver, at forbindelsen oprettes og tilføjes til SQL-udførelsen før forbindelsespoolen.
###spring.datasource.connection-init-sqls Når DBCP-forbindelsespoolen bruges, skal SQL'en blive udført ved initialiseringen
###spring.datasource.connection-properties. [nøgle]Angiver de attributter, der skal konfigureres, når DBCP-forbindelsespoolen bruges
###spring.datasource.connection-test-query specificerer SQL-sætningen, der verificerer legitimiteten af forbindelsesudførelsen
###spring.datasource.connection-timeoutAngiver timeout-tiden for forbindelsen i millisekunder.
###spring.datasource.continue-on-errorNår databasen initialiseres, og der opstår en fejl om, hvorvidt man skal fortsætte eller ej, er standarden falsk
###spring.datasource.data specificerer Data (DML)-scriptet
###spring.datasource.data-source-class-name Angiver det fuldt kvalificerede navn på datakilden.
###spring.datasource.data-source-jndi angiver adressen på jndi
###spring.datasource.data-source-properties. Når du bruger Hikari-forbindelsespoolen, skal du angive de attributter, der skal sættes
###spring.datasource.db-egenskaber bruger Tomcat-forbindelsespoolen, der specificerer de egenskaber, der skal sættes
###spring.datasource.default-auto-commit bliver automatisk committet.
###spring.datasource.default-catalog specificerer kataloget, der forbinder til standarden.
###spring.datasource.default-read-onlyEnten for at sætte standardforbindelsen til skrivebeskyttet.
###spring.datasource.default-transaction-isolationSpecificerer standardisolationsniveauet for forbundne transaktioner.
###spring.datasource.driver-class-name angiver driverens klassenavn, som automatisk opdages fra jdbc-URL'en som standard.
###spring.datasource.fair-queue Om man skal bruge FIFO returnerer forbindelser.
###spring.datasource.health-check-properties. [nøgle] Attribut overgået ved brug af Hikari-forbindelsespoolen under hjerteslagskontrol
###spring.datasource.idle-timeoutAngiver hvor længe forbindelsen ikke bruges, hvilket som standard sættes til inaktiv
###spring.datasource.ignore-exception-on-pre-loadHvoraf undtagelsen ignoreres, når forbindelsespoolen initialiseres.
###spring.datasource.init-sqlsql, der kører, når en forbindelse oprettes.
###spring.datasource.initial-size angiver antallet af forbindelser, der oprindeligt etableres, når forbindelsespuljen startes
###spring.datasource.initialization-fail-fastNår man opretter en forbindelsespool, er det ikke muligt at oprette et specificeret minimum antal forbindelser for at kaste en undtagelse
###spring.datasource.initializeAngiv, om datakilden skal initialiseres med data.sql, standard: true
###spring.datasource.isolate-internal-queries angiver, om interne forespørgsler skal sættes i karantæne, med standarden false
###spring.datasource.jdbc-interceptors Når Tomcat-forbindelsespuljen bruges, skal du angive adskillelsen mellem jdbc-interceptoren og semikolon
###spring.datasource.jdbc-url specificerer JDBC URL'en.
###spring.datasource.jmx-enabled er aktiveret som standard: false
###spring.datasource.jndi-nameAngiver navnet på jndi'en.
###spring.datasource.leak-detection-threshold Hvor mange millisekunder opdager du en forbindelseslæk, når du bruger Hikari-forbindelsespoolen?
###spring.datasource.log-abandoned bruger DBCP-forbindelsespuljen til at spore forladte sætninger eller forbindelser, er standarden falsk
###spring.datasource.log-valideringsfejlNår man bruger Tomcat-forbindelsespoolen, om man skal udskrive en valideringsfejl.
###spring.datasource.login-timeoutAngiver timeout-tiden for forbindelse til databasen.
###spring.datasource.max-age angiver den maksimale alder på forbindelser i forbindelsespuljen
###spring.datasource.max-levetid angiver den maksimale levetid for forbindelser i forbindelsespuljen, i millisekunder.
###spring.datasource.max-open-prepared-statements specificerer det maksimale antal prepared statements, der åbnes.
###spring.datasource.max-wait angiver den maksimale ventetid for forbindelsespoolen til at vente på, at forbindelsen vender tilbage, i millisekunder.
###spring.datasource.maximum-pool-sizeAngiver det maksimale antal forbindelser i forbindelsespuljen, inklusive aktive og inaktive forbindelser.
###spring.datasource.min-evictable-idle-time-millisSpecificerer en fri forbindelse i den minimumsperiode, den kan være inaktiv, før den kan slettes.
###spring.datasource.min-idle angiver den minimumsværdi, der skal vedligeholdes (for DBCP- og Tomcat-forbindelsespools)
###spring.datasource.minimum-idle angiver det minimale antal frie forbindelser, som en forbindelse opretholder, og når HikariCP bruges.
###spring.datasource.name Angiv navnet på datakilden.
###spring.datasource.num-tests-per-eviction-run specificerer antallet af objekter, når hver inaktiv objekt-evitortråd køres
###spring.datasource.passwordAngiv databaseadgangskoden.
###spring.datasource.platform specificerer platformen (schema-${platform}.sql der skal bruges til skemaet, som som standard er: alle
###spring.datasource.pool-nameAngiver navnet på forbindelsespoolen.
###spring.datasource.pool-prepared-statementsSpecificerer, om sætninger skal pooles.
###spring.datasource.propagate-interrupt-stateUanset om afbrydelsestilstanden skal udbredes, hvis tråden afbrydes, mens den venter på forbindelsen.
###spring.datasource.read-onlyNår man bruger Hikari-forbindelsespoolen, om man skal markere datakilden som skrivebeskyttet
###spring.datasource.register-mbeans angiver, om Hikari-forbindelsespuljen registrerer JMX MBeans.
###spring.datasource.remove-abandoned angiver, om en forbindelse skal slettes umiddelbart efter den opgivne timeout.
###spring.datasource.remove-abandoned-timeoutAngiver tidspunktet for hvor forbindelsen skal afbrydes.
###spring.datasource.rollback-on-returnEnten man skal rulle en ventende transaktion tilbage, når en forbindelse returneres.
###spring.datasource.schema specificerer Schema (DDL)-scriptet.
###spring.datasource.separator specificerer sætningsseparatoren til initialisering af scriptet, standard: ;
###spring.datasource.sql-script-encoding specificerer SQL-script-kodning.
###spring.datasource.suspect-timeoutAngiver timeouten før udskrivning af den forladte forbindelse.
###spring.datasource.test-on-borrowNår man låner en forbindelse fra en forbindelsespulje, om man skal teste forbindelsen.
###spring.datasource.test-on-connect oprettes, uanset om forbindelsen skal testes
###spring.datasource.test-on-returnUanset om forbindelsen returneres til forbindelsespuljen.
###spring.datasource.test-while-idleEnten man skal udføre en forbindelsestest, når forbindelsen er inaktiv.
###spring.datasource.time-between-eviction-runs-millis Angiver driftstidsintervallet mellem inaktive forbindelsestjek, oprydning af opgivet forbindelse og idle forbindelsespool-størrelse
###spring.datasource.transaction-isolation specificerer transaktionsisolationsniveauet, som angives, når Hikari-forbindelsespoolen bruges
###spring.datasource.url angiver JDBC URL'en.
###spring.datasource.use-disposable-connection-façade omslutter forbindelsen for at forhindre, at den bruges efter den er lukket.
###spring.datasource.use-er lig med om String.equals() skal erstattes ==.
###spring.datasource.use-lock er låst på forbindelsesoperationen
###spring.datasource.usernameAngiv databasenavnet.
###spring.datasource.validation-interval angiver, hvor mange ms der skal udføres en forbindelseskontrol.
###spring.datasource.validation-query specificerer SQL-forespørgselssætningen til forbindelsesvalidering, når en forbindelse opnås.
###spring.datasource.validation-query-timeoutAngiver timeout-tidspunktet for forbindelsesvalideringsforespørgslen.
###spring.datasource.validation-timeoutSætter timeout-tiden for forbindelsesvalidering, som angives, når Hikari-forbindelsespoolen bruges
###spring.datasource.validator-class-name Den validator-fulde kvalifikator, der bruges til at teste forespørgslen.
###spring.datasource.xa.data-source-class-name Angiver den fulde kvalifikator for datakilden.
###spring.datasource.xa.properties specificerer de egenskaber, der 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-konfigurationsinformation
###spring.jpa.database angiver måldatabasen.
###spring.jps.show-sq: Om SQL-sætninger skal vises
###spring.jpa.hibernate.ddl-auto specificerer DDL-tilstand (none, validate, update, create, create-drop). Når man bruger en indlejret database, er standarden create-drop, ellers er det ingen.
###spring.jpa.hibernate.naming-strategyAngiv navngivningspolitikken.
###其他:
###spring.jpa.database-platformAngiver typen af måldatabase.
###spring.jpa.generate-ddl om skemaet skal initialiseres ved opstart, går som standard til false
###spring.jpa.hibernate.ddl-auto specificerer DDL-tilstand (none, validate, update, create, create-drop). Når man bruger en indlejret database, er standarden create-drop, ellers er det ingen.
###spring.jpa.hibernate.naming-strategyAngiv navngivningspolitikken.
###spring.jpa.open-in-view registrerer OpenEntityManagerInViewInterceptor og binder JPA EntityManager til anmodningstråden, standarden er sand
###spring.jpa.properties tilføjer yderligere attributter til JPA-udbyderen.
###spring.jpa.show-sql Om man aktiverer SQL-log, er som standard sat til false
##########################################
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



Datakildekonfiguration:




Entitetsklasse:



Databasebetjeningsgrænseflade:

Database-operationsgrænsefladen arver fra JpaRepository-klassen, og når den arver den, får den den guddommelige magt, den giver udviklerne:



Vi kan direkte kalde disse metoder for at udføre databaseoperationer, og vi kan også tilpasse HQL til at udføre andre operationer, der passer til vores personlighed, såsom:

I denne kode, gennem @Query kommentar,Færdiggjorde skrivningen af HQLhvor ":name" er konsistent med parameteren i den @Param annotation nedenfor.

Bemærk: Tabelnavnet i HQL bør være klassenavnet på ORM-kortet, og HQL har nogle forskelle fra traditionelle SQL-sætninger, såsom at betydningen af "*" er anderledes osv.

Hvis du ikke er vant til at bruge HQL, kan du også bruge SQL-sætninger:



Ovenstående metode er stadig effektiv, når den udføres.nativeQuery to true betyder brug af SQL-sproget

Controller-klasse:

Start projektet

Hibernate vil automatisk mappe entitetsklasser til databasen for at oprette relevante databasetabeller for os, og den vil automatisk matche databasetabeller baseret på annoteringer som @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO) osv. Spar en masse tabuleringsarbejde.


(Før du starter projektet, skal du først bygge databasen, og tabellen vil automatisk blive oprettet)



hibernate_sequence tabel er en id-genereringsstrategi @GeneratedValue annoteret, GenerationType.AUTO repræsenterer automatisk generering, forudsat at id-attributten skal være en int- eller longtype-attribut; hvis det er et id af String-typen, vil tilføjelse af denne annotation oven på id straks rapportere en fejl. Derfor, hvis det er for id for String-typen, behøver du ikke annotere id med @GeneratedValue (strategy = GenerationType.AUTO).

Anmod om en test

Fuldfør dataanmodning og datalagring via get og post henholdsvis.


Påberåbe sigHyperlink-login er synlig.Interfacet POST anmoder om at tilføje data, som vist i følgende figur:



Databaseforespørgslen er som følger:



Få dataene via følgende grænseflade:

Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.



Bemærk: Som anmodet af ovenstående interface er Java meget følsom over for kasusfølsomhed, uanset om det er URL-adressen eller parametrene, det skal være kasusfølsomt! Hvis et bogstav er stort eller småt, vil det få anmodningen til at mislykkes i at nå interfacet, eller parameteren vil være tom!

Druiden overvåger følgende situationer:






Endelig vedhæft kildekoden:

Turister, hvis I vil se det skjulte indhold i dette indlæg, så vær venligSvar


(Slut)





Tidligere:Fejlede i at konfigurere en DataSource
Næste:Jieyou eftermiddagste | Onsdag den 20. februar 2019
Opslået på 21/02/2019 02.19.13 |
Tag et kig på at lære at lære.
Opslået på 05/07/2019 17.27.02 |
Lær at lære...
Opslået på 22/07/2019 14.15.41 |
Tag et kig på at lære at lære.
Opslået på 21/11/2019 21.08.12 |
【Practical Combat】Spring Boot Hibernate Druid MySQL Project Construction Tutorial
Opslået på 30/03/2020 13.52.54 |
Mange tak
Opslået på 28/06/2020 15.13.11 |
Tag et kig på kodelæringen hos de store spillere
Opslået på 18/11/2020 23.57.19 |
Lær at lære
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com