Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 36133|Odgovoriti: 7

[Vir] Spring Boot Hibernate Druid MySQL Project Construction Tutorial [z izvorno kodo]

[Kopiraj povezavo]
Objavljeno na 20. 02. 2019 14:44:57 | | | |
Tudi jaz sem napol podkovan v Javi in nisem zelo seznanjen s pomladnim družinskim vedrom, zato sem zgradil projektni okvir na podlagi spletnih vodičev in nekaj lastnih izkušenj.
Projektno okolje:JDK različica: 1.8.0_171, MySQL različica: 5.7.17, Spring boot: 2.1.1.RELEASE, razvojna orodja: idea.

Hibernacija in JPA

Spletni projekt v tem članku uporablja Hibernate kot ogrodje za trajno plast. V Spring Boot moramo razumeti še en koncept: JPA

Prejšnji stavek je morda dvoumen, vendar ne pomeni, da je JPA koncept v Spring Boot. Namesto tega je to Java Persistence API, ki je v kitajščino preveden kot: Java Persistence Layer API.

JPA je standardna specifikacija, ki temelji na ORM (ali O/R preslikavi), pri kateri JPA definira le standardna pravila in ne zagotavlja implementacije.

Trenutno so glavne implementacije JPA Hibernate, EclipseLink, OpenJPA itd.

Zaradi prevlade Hibernate na področju tehnologije reševanja dostopa do podatkov je standard JPA v bistvu dominiran s strani Hibernate.

SpringBoot je avtomatska puška

Spring Data JPA je na voljo kot vmesniško orodje za razvijalce za uporabo ogrodja Hibernate. Naš Spring Boot zagotavlja popolnoma avtomatiziran "samodejni modul odvisnosti": spring-boot-starter-data-jpa


Struktura odvisnosti POM:

Ali ima kdo vprašanja glede datoteke pom brez navedbe za hibernacijo?



Razlog je, da kot je prikazano na zgornji sliki, spring-boot-starter-data-jpa temelji na hibernate-core, in ko se sklicujemo na spring-boot-starter-data-jpa, projekt maven samodejno predstavi paket, od katerega je odvisen.


application.yml Profil:

Uradna povezava do virov podatkov za konfiguracijo Spring:Prijava do hiperpovezave je vidna.

##########################################
###datasource - Določite informacije o povezavi z mysql bazo podatkov
###spring.datasource.url: MySQL naslov
###spring.datasource.user: Uporabniško ime baze podatkov
###spring.datasource.password: Geslo za bazo podatkov
###spring.datasource.driverClassName: Ustreza gonilniku baze podatkov
###spring.datasource.max-aktivno: Določa največje število aktivnih povezav v povezovalnem bazenu
###spring.datasource.max-neaktiven: Določa največje število prostih povezav v povezovalnem bazenu.
###spring.datasource.min-idle: Določa minimalno vrednost, ki jo je treba vzdrževati (za DBCP in Tomcat povezovalne bazene)
###spring.datasource.initial-size: Določa število povezav, ki so bile vzpostavljene ob začetku bazena povezav
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled ne glede na to, ali je PersistenceExceptionTranslationPostProcessor omogočen, je privzeto res
###spring.datasource.abandon-when-percentage-fullsets odstotek zapuščenih povezav, ki so zaprte ali prijavljene, ko je časovni izpad opuščen
###spring.datasource.allow-pool-suspension Pri uporabi Hikari poola je nastavljeno, ali dovoliti pavzo povezave
###spring.datasource.alternativno-uporabniško ime-dovoljeno ali so alternativna uporabniška imena dovoljena.
###spring.datasource.auto-commitDoloča, ali se posodobitve samodejno potrdijo.
###spring.datasource.catalog določa privzeti katalog.
###spring.datasource.commit-on-return določa, ali naj se ob vrnitvi povezave potrdijo vse neplačane transakcije
###spring.datasource.connection-init-sql določa, da se povezava ustvari in doda v sql, ki se izvede pred skupino povezav.
###spring.datasource.connection-init-sqls Ko uporabljate DBCP povezovalni bazen, določite, da se SQL izvaja ob inicializaciji
###spring.datasource.connection-properties. [key]Določa atribute, ki jih je treba konfigurirati pri uporabi DBCP povezovalnega bazena
###spring.datasource.connection-test-query določa SQL stavek, ki preverja legitimnost izvajanja povezave
###spring.datasource.connection-timeoutDoloča čas časovne omejitve povezave v milisekundah.
###spring.datasource.continue-on-errorKo inicializiramo bazo podatkov in naletimo na napako, ali nadaljevati ali ne, je privzeta nastavitev napačna
###spring.datasource.data določa Data (DML) skripto
###spring.datasource.data-source-class-name Določa popolnoma kvalificirano ime podatkovnega vira.
###spring.datasource.data-source-jndi določa naslov jndi
###spring.datasource.data-source-properties. Pri uporabi Hikari povezovalnega bazena določite atribute, ki jih želite nastaviti
###spring.datasource.db-lastnosti uporabljajo Tomcatov povezovalni bazen, ki določa lastnosti, ki jih je treba nastaviti
###spring.datasource.default-auto-commit se samodejno potrdi.
###spring.datasource.default-catalog določa katalog, ki se povezuje z privzetim.
###spring.datasource.default-read-onlyWhether nastaviti privzeto povezavo na samo za branje.
###spring.datasource.default-transaction-isolationDoloča privzeto raven izolacije za povezane transakcije.
###spring.datasource.driver-class-name določa ime razreda gonilnika, ki je privzeto samodejno zaznano iz URL-ja jdbc.
###spring.datasource.fair-queue Ali uporabiti FIFO povratne povezave.
###spring.datasource.health-check-properties. [ključ] Atribut je bil prenesen ob uporabi Hikari povezovalnega bazena med preverjanjem srčnega utripa
###spring.datasource.idle-timeoutDoloča, kako dolgo povezava ni uporabljena, kar je privzeto nastavljeno na neaktivnost
###spring.datasource.ignore-exception-on-pre-loadAli je izjema prezrta, ko je bazen povezav inicializiran.
###spring.datasource.init-sqlsql, ki se izvaja, ko je povezava vzpostavljena
###spring.datasource.initial-size določa število povezav, ki so bile vzpostavljene ob začetku bazena povezav
###spring.datasource.initialization-fail-fast Pri ustvarjanju bazena povezav ni mogoče ustvariti določenega minimalnega števila povezav za zavrženje izjeme
###spring.datasource.initializeDoloči, ali naj se vir podatkov inicializira z data.sql, privzeto: true
###spring.datasource.isolate-internal-queries določa, ali je treba notranje poizvedbe postaviti v karanteno, pri čemer se privzeto nastavi false
###spring.datasource.jdbc-interceptors Ko uporabljate Tomcat povezovalni bazen, določite jdbc interceptor in ločitev podpičja
###spring.datasource.jdbc-url določa JDBC URL.
###spring.datasource.jmx-enabled je privzeto omogočen: false
###spring.datasource.jndi-nameDoloča ime jndi.
###spring.datasource.leak-detection-threshold Koliko milisekund zaznaš puščanje povezave, ko uporabljaš Hikari connection pool?
###spring.datasource.log-abandoned uporablja DBCP povezovalni bazen za sledenje zapuščenim izjavam ali povezavam, je privzeto napačno
###spring.datasource.log-validacijske napakePri uporabi Tomcat connection poola, ali naj natisnemo validacijsko napako.
###spring.datasource.login-timeoutDoloča čas časovne omejitve za povezavo z bazo podatkov.
###spring.datasource.max-starost določa največjo starost povezav v povezovalnem bazenu
###spring.datasource.max-življenjski čas določa največjo življenjsko dobo povezav v povezovalnem bazenu, v milisekundah.
###spring.datasource.max-odprte-pripravljene izjave določa največje število pripravljenih izjav, ki se odprejo.
###spring.datasource.max-wait določa najdaljši čas čakanja, da povezovalni bazen počaka na vrnitev povezave, v milisekundah.
###spring.datasource.maximum-pool-sizeDoloča največje število povezav v skladu povezav, vključno z aktivnimi in neaktivnimi povezavami.
###spring.datasource.min-evictable-idle-time-millisDoloča prosto povezavo za minimalno obdobje, kolikor je lahko neaktivna, preden jo je mogoče sprostiti.
###spring.datasource.min-idle določa minimalno vrednost, ki jo je treba vzdrževati (za DBCP in Tomcat povezovalne bazene)
###spring.datasource.minimum-idle določa minimalno število prostih povezav, ki jih vzdržuje povezava in pri uporabi HikariCP.
###spring.datasource.name Določite ime podatkovnega vira.
###spring.datasource.num-tests-per-eviction-run določa število objektov pri izvajanju vsake niti evitor objekta v mirovanju
###spring.datasource.passwordDoloči geslo za bazo podatkov.
###spring.datasource.platform določa platformo (schema-${platform}.sql za uporabo sheme, ki privzeto izbere: vse
###spring.datasource.pool-nameDoloča ime povezovalnega bazena.
###spring.datasource.pool-prepared-statementsDoloča, ali naj se izjave združijo.
###spring.datasource.propagate-interrupt-stateAli naj se stanje prekinitve propagira, če je nit prekinjena med čakanjem na povezavo.
###spring.datasource.read-only Pri uporabi Hikari povezovalnega bazena, ali označiti podatkovni vir kot samo za branje
###spring.datasource.register-mbeans določa, ali Hikari povezovalni bazen registrira JMX MBeans.
###spring.datasource.remove-abandoned določa, ali je treba povezavo izbrisati takoj po zapuščenem časovnem izteku.
###spring.datasource.remove-abandoned-timeoutDoloča čas, ko je treba povezavo prekiniti.
###spring.datasource.rollback-on-returnAli razveljaviti čakajočo transakcijo ob vračanju povezave.
###spring.datasource.schema določa skripto Schema (DDL).
###spring.datasource.separator določa ločilo stavkov za inicializacijo skripte, privzeto: ;
###spring.datasource.sql-skriptno kodiranje določa kodiranje SQL skript.
###spring.datasource.suspect-timeoutDoloča časovno omejitev pred tiskom opuščene povezave.
###spring.datasource.test-on-borrowKo si izposojamo povezavo iz povezovalnega bazena, ali jo testirati.
###spring.datasource.test-on-connect se ustvari, ne glede na to, ali je treba preizkusiti povezavo
###spring.datasource.test-on-return Ali se povezava vrne v povezovalni bazen.
###spring.datasource.test-while-idle Ali naj izvedemo test povezave, ko je povezava neaktivna.
###spring.datasource.time-between-eviction-runs-millis Določa časovni interval delovanja med preverjanji povezave v mirovanju, čiščenjem zapuščene povezave in velikostjo bazena povezav v mirovanju
###spring.datasource.transaction-isolation določa stopnjo izolacije transakcij, ki je določena pri uporabi Hikari povezovalnega bazena
###spring.datasource.url določa JDBC URL.
###spring.datasource.use-disposable-connection-façade ovije povezavo, da prepreči njeno uporabo po zaprtju.
###spring.datasource.use-equals, ali uporabiti String.equals() za zamenjavo ==.
###spring.datasource.use-lock je zaklenjen na operacijo povezave
###spring.datasource.usernameDoločite ime baze podatkov.
###spring.datasource.validation-interval določa, koliko ms naj se izvede preverjanje povezave.
###spring.datasource.validation-query določa SQL poizvedbo za validacijo povezave ob vzpostavitvi povezave.
###spring.datasource.validation-query-timeoutDoloča čas časovne omejitve za poizvedbo potrditve povezave.
###spring.datasource.validation-timeoutDoloči čas časovne omejitve za validacijo povezave, ki je določen pri uporabi Hikari bazena povezav
###spring.datasource.validator-class-name Polni kvalifikator validatorja, uporabljen za testiranje poizvedbe.
###spring.datasource.xa.data-source-class-name Določa polni kvalifikator podatkovnega vira.
###spring.datasource.xa.properties določa lastnosti, ki se prenesejo na XA podatkovni vir
###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-aktivno=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring Konfiguracijske informacije JPA
###spring.jpa.database določa ciljno bazo podatkov.
###spring.jps.show-sq: Ali prikazati SQL stavke
###spring.jpa.hibernate.ddl-auto določa DDL način (none, validate, update, create, create-drop). Pri uporabi vgrajene baze podatkov je privzeta možnost ustvarjanja in spuščanja, sicer pa ni nobene.
###spring.jpa.hibernate.naming-strategyDoloči politiko poimenovanja.
###其他:
###spring.jpa.database-platformDoloča vrsto ciljne baze podatkov.
###spring.jpa.generate-ddl ali inicializirati shemo ob zagonu, privzeto nastavi false
###spring.jpa.hibernate.ddl-auto določa DDL način (none, validate, update, create, create-drop). Pri uporabi vgrajene baze podatkov je privzeta možnost ustvarjanja in spuščanja, sicer pa ni nobene.
###spring.jpa.hibernate.naming-strategyDoloči politiko poimenovanja.
###spring.jpa.open-in-view registrira OpenEntityManagerInViewInterceptor in veže JPA EntityManager na nit zahtev; privzeto velja
###spring.jpa.properties dodaja dodatne atribute ponudniku JPA.
###spring.jpa.show-sql Ali omogočiti SQL dnevnik, je privzeto nastavljeno na false
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImposedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

Celotna struktura paketa



Konfiguracija vira podatkov:




Razred entitete:



Vmesnik za upravljanje podatkovne baze:

Vmesnik za delovanje podatkovne baze podeduje generični razred JpaRepository, in ko ga podeduje, pridobi božansko moč, ki jo podeljuje razvijalcem:



Te metode lahko neposredno pokličemo za izvajanje podatkovnih operacij, HQL pa lahko tudi prilagodimo za izvajanje drugih operacij, ki ustrezajo naši osebnosti, kot so:

V tej kodi, preko @Query komentarja,Zaključeno pisanje HQLkjer je ":name" skladno s parametrom v @Param opombi spodaj.

Opomba: Ime tabele v HQL naj bi bilo ime razreda ORM mape, HQL pa se razlikuje od tradicionalnih SQL stavkov, na primer pomen "*" je drugačen itd.

Če niste vajeni uporabe HQL, lahko uporabite tudi SQL stavke:



Zgornja metoda je še vedno učinkovita, ko se izvaja.nativeQuery do true pomeni z uporabo jezika SQL

Razred krmilnika:

Začni projekt

Hibernate bo samodejno preslikal razrede entitet v bazo podatkov, da ustvari ustrezne tabele baze podatkov za nas, in samodejno bo primerjal tabele baze podatkov na podlagi opomb, kot so @Table, @Column, @Id, @GeneratedValue (strategija = GenerationType.AUTO) itd. Prihranite veliko dela pri preštevanju.


(Preden začnete projekt, morate najprej zgraditi bazo podatkov in tabela se bo samodejno ustvarila)



hibernate_sequence tabela je strategija generiranja id-jev @GeneratedValue anotirana, GenerationType.AUTO predstavlja samodejno generiranje, pod pogojem, da mora biti atribut id int ali long; če je id tipa String, bo dodajanje te opombe nad id takoj poročalo o napaki. Zato, če gre za id tipa String, ni treba označevati id-ja z @GeneratedValue (strategy = GenerationType.AUTO).

Zahtevajte test

Popolna zahteva po podatkih in shranjevanje podatkov preko get in post.


SklicevatiPrijava do hiperpovezave je vidna.Vmesnik POST zahteva dodajanje podatkov, kot je prikazano na naslednji sliki:



Poizvedba v bazi podatkov je naslednja:



Podatke pridobite preko naslednjega vmesnika:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.



Opomba: Kot zahteva zgornji vmesnik, je Java zelo občutljiva na občutljivost na velika in mala črka, ne glede na to, ali gre za naslov URL-ja ali parametre, mora biti občutljiva na velike in velike črke! Če je črka velika ali mala črka, bo to povzročilo, da zahteva ne doseže vmesnika ali pa bo parameter prazen!

Druid spremlja naslednje situacije:






Na koncu priložite izvorno kodo:

Turisti, če želite videti skrito vsebino te objave, prosimOdgovoriti


(Konec)





Prejšnji:Ni uspelo konfigurirati DataSource
Naslednji:Jieyou popoldanski čaj | Sreda, 20. februar 2019
Objavljeno na 21. 02. 2019 02:19:13 |
Poglejte si učenje za učenje.
Objavljeno na 5. 07. 2019 17:27:02 |
Nauči se učiti...
Objavljeno na 22. 07. 2019 14:15:41 |
Poglejte si učenje za učenje.
Objavljeno na 21. 11. 2019 21:08:12 |
【Practical Combat】Spring Boot Hibernate Druid MySQL Project Construction Tutorial
Objavljeno na 30. 03. 2020 13:52:54 |
Najlepša hvala
Objavljeno na 28. 06. 2020 15:13:11 |
Poglejte učenje kode pri velikih igralcih
Objavljeno na 18. 11. 2020 23:57:19 |
Uči se učiti
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com