Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 36133|Atsakyti: 7

[Šaltinis] Pavasario Boot Hibernate Druid MySQL projekto statybos Tutorial [su šaltinio kodu]

[Kopijuoti nuorodą]
Paskelbta 2019-02-20 14:44:57 | | | |
Aš taip pat pusiau keptas Java, ir aš nesu labai susipažinęs su pavasario šeimos kibiras, ir aš sukūriau projekto sistemą, pagrįstą internete vadovėliai ir kai kurių savo patirties.
Projekto aplinka:JDK versija: 1.8.0_171, mysql versija: 5.7.17, spyruoklinė įkrova: 2.1.1.RELEASE, kūrimo įrankiai: idea.

Užmigdyti ir JPA

Šiame straipsnyje pateiktas žiniatinklio projektas naudoja užmigdymo režimą kaip patvarumo sluoksnio sistemą. "Spring Boot" turime suprasti kitą sąvoką: JPA

Ankstesnis sakinys gali būti dviprasmiškas, bet tai nereiškia, kad JPA yra "Spring Boot" sąvoka. Vietoj to tai yra "Java Persistence API", kuri į kinų kalbą išversta kaip: "Java Persistence Layer API".

JPA yra standartinė specifikacija, pagrįsta ORM (arba O/R atvaizdavimu), kurioje JPA apibrėžia tik standartines taisykles ir neužtikrina įgyvendinimo.

Šiuo metu pagrindiniai JPA įgyvendinimai yra Hibernate, EclipseLink, OpenJPA ir kt.

Dėl "Hibernate" dominavimo duomenų prieigos raiškos technologijos srityje JPA standarte iš esmės dominuoja "Hibernate".

"SpringBoot" yra automatinis šautuvas

"Spring Data JPA" pateikiamas kaip sąsajos įrankis, skirtas kūrėjams taikyti užmigdymo sistemą. Mūsų "Spring Boot" suteikia visiškai automatizuotą "automatinį priklausomybės modulį": spring-boot-starter-data-jpa


POM priklausomybės struktūra:

Ar kas nors turi klausimų apie pom failą be citatos užmigdyti?



Priežastis ta, kad, kaip parodyta aukščiau esančiame paveikslėlyje, spring-boot-starter-data-jpa priklauso nuo hibernate-core, o nurodant spring-boot-starter-data-jpa, maven projektas automatiškai pristatys paketą, nuo kurio priklauso.


application.yml profilis:

Pavasario konfigūracijos duomenų šaltinio informacija oficiali nuoroda:Hipersaito prisijungimas matomas.

##########################################
###datasource - nurodykite mysql duomenų bazės ryšio informaciją
###spring.datasource.url: MySQL adresas
###spring.datasource.user: Duomenų bazės vartotojo vardas
###spring.datasource.password: duomenų bazės slaptažodis
###spring.datasource.driverClassName: atitinka duomenų bazės tvarkyklę
###spring.datasource.max-active: nurodo maksimalų aktyvių ryšių skaičių ryšių telkinyje
###spring.datasource.max-idle: nurodo maksimalų laisvų ryšių telkinyje skaičių.
###spring.datasource.min-idle: nurodo minimalią reikšmę, kurią reikia išlaikyti (DBCP ir Tomcat ryšių telkiniams)
###spring.datasource.initial-size: nurodo ryšių, iš pradžių užmegztų paleidus ryšių telkinį, skaičių
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled nesvarbu, ar įgalintas PersistenceExceptionTranslationPostProcessor, numatytasis nustatymas yra teisingas
###spring.datasource.abandon-when-percentage-fullnustato nutrauktų ryšių, kurie uždaromi arba apie kuriuos pranešama, kai baigiasi skirtasis laikas, procentą
###spring.datasource.allow-pool-suspension Naudojant Hikari telkinį, ar leisti ryšio telkiniui pristabdyti, nustatyta kaip false
###spring.datasource.alternate-username-allowedar leidžiami alternatyvūs vartotojo vardai.
###spring.datasource.auto-commitNurodo, ar naujinimai atliekami automatiškai.
###spring.datasource.catalog nurodo numatytąjį katalogą.
###spring.datasource.commit-on-return nustato, ar grąžinti visas neįvykdytas operacijas, kai ryšys grąžinamas
###spring.datasource.connection-init-sql nurodo, kad ryšys sukuriamas ir įtraukiamas į sql, vykdomą prieš ryšių telkinį.
###spring.datasource.connection-init-sqls Naudodami DBCP ryšių telkinį, nurodykite sql, kuris bus vykdomas inicijuojant
###spring.datasource.connection-properties. [key]Nurodo atributus, kurie turi būti konfigūruojami naudojant DBCP ryšių telkinį
###spring.datasource.connection-test-query nurodo SQL sakinį, kuris patikrina ryšio vykdymo teisėtumą
###spring.datasource.connection-timeoutNurodo ryšio skirtąjį laiką milisekundėmis.
###spring.datasource.continue-on-errorInicijuojant duomenų bazę, susiduriama su klaida, ar tęsti, ar ne, numatytoji reikšmė yra klaidinga
###spring.datasource.data nurodo duomenų (DML) scenarijų
###spring.datasource.data-source-class-name Nurodo pilną duomenų šaltinio pavadinimą.
###spring.datasource.data-source-jndi nurodo jndi adresą
###spring.datasource.data-source-properties. Kai naudojate Hikari ryšio telkinį, nurodykite atributus, kuriuos norite nustatyti
###spring.datasource.db-properties naudoja Tomcat ryšių telkinį, nurodydamas ypatybes, kurias reikia nustatyti
###spring.datasource.default-auto-commit yra automatiškai patvirtintas.
###spring.datasource.default-catalog nurodo katalogą, kuris jungiasi prie numatytojo.
###spring.datasource.default-read-onlyAr nustatyti numatytąjį ryšį kaip tik skaitomą.
###spring.datasource.default-transaction-isolationNurodo numatytąjį prijungtų operacijų izoliavimo lygį.
###spring.datasource.driver-class-name nurodo tvarkyklės klasės pavadinimą, kuris pagal numatytuosius nustatymus automatiškai aptinkamas iš jdbc URL.
###spring.datasource.fair-queue Ar naudoti FIFO grįžtamuosius ryšius.
###spring.datasource.health-check-properties. [raktas] Atributas, perduotas naudojant Hikari ryšio telkinį tikrinant širdies plakimą
###spring.datasource.idle-timeoutNurodo, kiek laiko ryšys nenaudojamas, kuris pagal numatytuosius nustatymus nustatytas kaip neveikiantis
###spring.datasource.ignore-exception-on-pre-loadAr inicijuojant ryšių telkinį nepaisoma išimties.
###spring.datasource.init-sqlsql, kuris vykdomas sukūrus ryšį
###spring.datasource.initial-size nurodo ryšių, iš pradžių užmegztų paleidus ryšių telkinį, skaičių
###spring.datasource.initialization-fail-fastKuriant ryšių telkinį, neįmanoma sukurti nurodyto minimalaus ryšių skaičiaus, kad būtų pateikta išimtis
###spring.datasource.initializeNurodykite, ar inicijuoti duomenų šaltinį naudojant data.sql, numatytasis: true
###spring.datasource.isolate-internal-queries nurodo, ar vidinės užklausos turi būti sulaikytos, pagal numatytuosius nustatymus kaip false
###spring.datasource.jdbc-interceptors Kai naudojate Tomcat ryšių telkinį, nurodykite jdbc perėmėją ir kabliataškio atskyrimą
###spring.datasource.jdbc-url nurodo JDBC URL.
###spring.datasource.jmx-enabled įjungtas pagal numatytuosius nustatymus: false
###spring.datasource.jndi-nameNurodo jndi pavadinimą.
###spring.datasource.leakion-detection-threshold Kiek milisekundžių aptinkate ryšio nuotėkį naudodami Hikari ryšio telkinį?
###spring.datasource.log-abandoned naudoja DBCP ryšių telkinį, kad sektų apleistus sakinius ar ryšius, numatytasis yra klaidingas
###spring.datasource.log-validation-errorsNaudojant Tomcat ryšio telkinį, ar spausdinti tikrinimo klaidą.
###spring.datasource.login-timeoutNurodo prisijungimo prie duomenų bazės skirtąjį laiką.
###spring.datasource.max amžius nurodo maksimalų ryšių telkinio ryšių amžių
###spring.datasource.max-lifetime nurodo maksimalų ryšių telkinio veikimo laiką milisekundėmis.
###spring.datasource.max-open-prepared-statementsnurodo maksimalų atidarytų išrašų skaičių.
###spring.datasource.max-wait nurodo maksimalų ryšio telkinio laukimo laiką milisekundėmis.
###spring.datasource.maximum-pool-sizeNurodo maksimalų ryšių telkinio ryšių skaičių, įskaitant aktyvius ir neveikiančius ryšius.
###spring.datasource.min-evictable-idle-time-millisNurodo nemokamą ryšį minimaliam laikui, kurį jis gali būti nenaudojamas, kol jį galima išvalyti.
###spring.datasource.min-idle nurodo minimalią reikšmę, kurią reikia išlaikyti (DBCP ir Tomcat ryšių telkiniams)
###spring.datasource.minimum-idle nurodo minimalų laisvų ryšių skaičių, kurį palaiko ryšys ir naudojant HikariCP.
###spring.datasource.name Nurodykite duomenų šaltinio pavadinimą.
###spring.datasource.num-tests-per-eviction-run nurodo objektų skaičių vykdant kiekvieną neveikiančio objekto evitor giją.
###spring.datasource.passwordNurodykite duomenų bazės slaptažodį.
###spring.datasource.platform nurodo platformą (schema-${platform}.sql naudoti schemai, kuri pagal numatytuosius nustatymus yra: all
###spring.datasource.pool-nameNurodo ryšių telkinio pavadinimą.
###spring.datasource.pool-prepared-statementsNurodo, ar telkti sakinius.
###spring.datasource.propagate-interrupt-stateAr skleisti pertraukimo būseną, jei gija nutraukiama laukiant ryšio.
###spring.datasource.read-onlyNaudojant Hikari ryšio telkinį, ar pažymėti duomenų šaltinį kaip tik skaitomą
###spring.datasource.register-mbeans nurodo, ar Hikari ryšių telkinys registruoja JMX MBeans.
###spring.datasource.remove-abandoned nurodo, ar panaikinti ryšį iškart pasibaigus skirtajam laikui.
###spring.datasource.remove-abandoned-timeoutNurodo laiką, kada ryšys turi būti nutrauktas.
###spring.datasource.rollback-on-returnAr atšaukti laukiančią operaciją grąžinant ryšį.
###spring.datasource.schema nurodo schemos (DDL) scenarijų.
###spring.datasource.separator nurodo sakinio skyriklį, skirtą scenarijui inicijuoti, numatytasis: ;
###spring.datasource.sql-script-encoding nurodo SQL scenarijų kodavimą.
###spring.datasource.suspect-timeoutNurodo skirtąjį laiką prieš spausdinant nutrauktą ryšį.
###spring.datasource.test-on-borrowSkolinantis ryšį iš ryšio telkinio, ar išbandyti ryšį.
###spring.datasource.test-on-connect sukurtas, ar išbandyti ryšį
###spring.datasource.test-on-returnAr ryšys grąžinamas į ryšių telkinį.
###spring.datasource.test-while-idleAr atlikti ryšio testą, kai ryšys neveikia.
###spring.datasource.time-between-eviction-runs-millis Nurodo veikimo laiko intervalą tarp laukimo ryšio tikrinimo, nutraukto ryšio valymo ir laukimo ryšio telkinio dydžio nustatymo
###spring.datasource.transaction-isolation nurodo operacijos izoliacijos lygį, kuris nurodomas naudojant Hikari ryšių telkinį
###spring.datasource.url nurodo JDBC URL.
###spring.datasource.use-disposable-connection-façade apvynioja ryšį, kad jis nebūtų naudojamas jį uždarius.
###spring.datasource.use-equals, ar naudoti String.equals() pakeisti ==.
###spring.datasource.use-lock užrakintas ryšio operacija
###spring.datasource.usernameNurodykite duomenų bazės pavadinimą.
###spring.datasource.validation-interval nurodo, kiek ms reikia atlikti ryšio patikrinimą.
###spring.datasource.validation-query nurodo SQL užklausos sakinį, skirtą ryšio patvirtinimui gaunant ryšį.
###spring.datasource.validation-query-timeoutNurodo ryšio tikrinimo užklausos skirtąjį laiką.
###spring.datasource.validation-timeoutNustato ryšio patvirtinimo skirtąjį laiką, kuris nurodomas naudojant Hikari ryšio telkinį
###spring.datasource.validator-class-name Visas tikrintuvo kvalifikatorius, naudojamas užklausai patikrinti.
###spring.datasource.xa.data-source-class-name Nurodo visą duomenų šaltinio kvalifikatorių.
###spring.datasource.xa.properties nurodo ypatybes, perduotas XA duomenų šaltiniui
###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-aktyvus=20
spring.datasource.max tuščiąja eiga = 8
spring.datasource.min-idle=8
pavasaris.datasource.initial-size=10
##########################################
##SPring JPA konfigūracijos informacija
###spring.jpa.database nurodo tikslinę duomenų bazę.
###spring.jps.show-sq: ar rodyti SQL sakinius
###spring.jpa.hibernate.ddl-auto nurodo DDL režimą (nėra, patvirtinti, atnaujinti, sukurti, sukurti-numesti). Naudojant įterptąją duomenų bazę, numatytasis nustatymas yra create-drop, kitaip jo nėra.
###spring.jpa.hibernate.naming-strategyNurodykite pavadinimų suteikimo strategiją.
###其他:
###spring.jpa.database-platformNurodo tikslinės duomenų bazės tipą.
###spring.jpa.generate-ddl ar inicijuoti schemą paleidžiant, numatytoji reikšmė yra false
###spring.jpa.hibernate.ddl-auto nurodo DDL režimą (nėra, patvirtinti, atnaujinti, sukurti, sukurti-numesti). Naudojant įterptąją duomenų bazę, numatytasis nustatymas yra create-drop, kitaip jo nėra.
###spring.jpa.hibernate.naming-strategyNurodykite pavadinimų suteikimo strategiją.
###spring.jpa.open-in-view registruoja OpenEntityManagerInViewInterceptor ir susieja JPA EntityManager su užklausos gija, numatytasis yra teisingas
###spring.jpa.properties prideda papildomų atributų prie JPA teikėjo.
###spring.jpa.show-sql Ar įjungti SQL žurnalą, pagal numatytuosius nustatymus nustatyta kaip klaidinga
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = atnaujinti
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.Improved NamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
pavasaris.freemarker.charset=UTF-8

Visa paketo struktūra



Duomenų šaltinio konfigūracija:




Subjekto klasė:



Duomenų bazės valdymo sąsaja:

Duomenų bazės veikimo sąsaja paveldi iš JpaRepository bendrosios klasės, o paveldėjusi ją įgyja dievišką galią, kurią suteikia kūrėjams:



Šiuos metodus galime tiesiogiai iškviesti duomenų bazės operacijoms atlikti, taip pat galime pritaikyti HQL, kad atliktume kitas mūsų asmenybę atitinkančias operacijas, tokias kaip:

Šiame kode, per @Query komentarą,Baigė rašyti HQLkur ":name" atitinka žemiau esančioje @Param anotacijos parametrą.

Pastaba: HQL lentelės pavadinimas turėtų būti ORM žemėlapio klasės pavadinimas, o HQL turi tam tikrų skirtumų nuo tradicinių SQL sakinių, pvz., "*" reikšmė skiriasi ir pan.

Jei nesate įpratę naudoti HQL, taip pat galite naudoti SQL sakinius:



Aukščiau pateiktas metodas vis dar yra veiksmingas, kai jis atliekamas.nativeQuery į true reiškia naudojant SQL kalbą

Valdiklio klasė:

Pradėkite projektą

Hibernate automatiškai susieja objektų klases su duomenų baze, kad sukurtų mums atitinkamas duomenų bazės lenteles, ir automatiškai suderins duomenų bazės lenteles pagal tokius komentarus kaip @Table, @Column, @Id, @GeneratedValue (strategija = GenerationType.AUTO) ir kt. Sutaupykite daug lentelės darbo.


(Prieš pradėdami projektą, pirmiausia turite sukurti duomenų bazę, o lentelė bus sukurta automatiškai)



hibernate_sequence lentelė yra id generavimo strategija @GeneratedValue anotuota, GenerationType.AUTO reiškia automatinį generavimą, su sąlyga, kad id atributas turi būti int arba long type atributas, jei tai yra eilutės tipo id, pridėjus šią anotaciją ant id iškart bus pranešta apie klaidą. Todėl, jei tai yra eilutės tipo ID, jums nereikia komentuoti ID @GeneratedValue (strategija = GenerationType.AUTO).

Užsakyti testą

Užpildykite duomenų užklausą ir duomenų išsaugojimą atitinkamai per gauti ir paštu.


RemtisHipersaito prisijungimas matomas.Sąsaja POST prašo pridėti duomenų, kaip parodyta šiame paveikslėlyje:



Duomenų bazės užklausa yra tokia:



Gaukite duomenis per šią sąsają:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.



Pastaba: Kaip reikalauja aukščiau pateikta sąsaja, "Java" yra labai jautri didžiosioms ir mažosioms raidėms, nesvarbu, ar tai URL adresas, ar parametrai, ji turi skirti didžiąsias ir mažąsias raides! Jei raidė yra didžiąja arba mažąja raide, užklausa nepasieks sąsajos arba parametras bus tuščias!

Druid stebi šias situacijas:






Galiausiai pridėkite šaltinio kodą:

Turistai, jei norite pamatyti paslėptą šio įrašo turinį, prašomeAtsakyti


(Pabaiga)





Ankstesnis:Nepavyko sukonfigūruoti duomenų šaltinio
Kitą:Jieyou popietės arbata | 2019 m. vasario 20 d., trečiadienis
Paskelbta 2019-02-21 02:19:13 |
Pažvelkite į mokymąsi mokytis.
Paskelbta 2019-07-05 17:27:02 |
Išmokite mokytis...
Paskelbta 2019-07-22 14:15:41 |
Pažvelkite į mokymąsi mokytis.
Paskelbta 2019-11-21 21:08:12 |
【Praktinė kova】 Spring Boot Hibernate Druid MySQL projekto kūrimo pamoka
Paskelbta 2020-03-30 13:52:54 |
Labai ačiū
Paskelbta 2020-06-28 15:13:11 |
Pažvelkite į didelių vaikinų kodo mokymąsi
Paskelbta 2020-11-18 23:57:19 |
Išmokite mokytis
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com