Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 36133|Válasz: 7

[Forrás] Spring Boot Hibernate Druid MySQL Project Construction Tutorial [forráskóddal]

[Linket másol]
Közzétéve 2019. 02. 20. 14:44:57 | | | |
Én is félig kész vagyok a Java-ban, nem vagyok túl jártas a tavaszi családi vödörrel, és egy projektkeretet építettem online oktatóanyagok és néhány saját tapasztalatom alapján.
Projektkörnyezet:jdk verzió: 1.8.0_171, mysql verzió: 5.7.17, spring boot: 2.1.1.RELEASE, fejlesztő eszközök: idea.

Hibernáció és JPA

A cikkben szereplő webprojekt a Hibernate-et használja a tartóssági réteg keretrendszerként. A Spring Bootban egy másik fogalmat is meg kell értenünk: JPA

Az előző mondat talán kétértelmű, de ez nem jelenti azt, hogy a JPA a Spring Boot fogalma lenne. Ehelyett a Java Persistence API-t használjuk, amelyet kínaiul Java Persistence Layer API-ként fordítanak.

A JPA egy szabványos specifikáció, amely az ORM-en (vagy O/R leképezésen) alapul, amelyben a JPA csak szabványos szabályokat határoz meg, és nem nyújt megvalósítást.

Jelenleg a JPA fő megvalósításai a Hibernate, EclipseLink, OpenJPA stb.

A Hibernate adathozzáférési felbontási technológia területén való dominancia miatt a JPA szabványt alapvetően a Hibernate uralja.

A SpringBoot egy automata puska

A Spring Data JPA interfész eszközként szolgál a fejlesztők számára a Hibernate keretrendszer alkalmazásához. A Spring Boot egy teljesen automatizált "automatikus függőségi modult" biztosít: spring-boot-starter-data-jpa


POM függőségi szerkezet:

Van valakinek kérdése a pom fájlról, amire nincs hivatkozás a hibernációhoz?



Ennek oka, hogy ahogy a fenti ábrán látható, a spring-boot-starter-data-jpa a hibernate-core-tól függ, és amikor a spring-boot-starter-data-jpa referenciáját használjuk, a maven projekt automatikusan bevezeti azt a csomagot, amelyhez támaszkodik.


application.yml Profil:

Tavaszi konfigurációs adatforrás hivatalos link:A hiperlink bejelentkezés látható.

##########################################
###datasource - Megadja a mysql adatbázis kapcsolati adatait
###spring.datasource.url: MySQL cím
###spring.datasource.user: Adatbázis felhasználónév
###spring.datasource.password: Az adatbázis jelszó
###spring.datasource.driverClassName: Az adatbázis illegősnek felel meg
###spring.datasource.max-aktív: Megadja a maximális aktív kapcsolatok számát a kapcsolati poolban
###spring.datasource.max-idle: Megadja a maximális számú szabad kapcsolatot a kapcsolati poolban.
###spring.datasource.min-idle: Megadja a minimális értéket, amelyet fenn kell tartani (DBCP és Tomcat kapcsolati poolok esetén)
###spring.datasource.initial-size: Megadja a kapcsolatok számát, amelyeket először létrehoztak a kapcsolat pool indításakor
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled függetlenül attól, hogy a PersistenceExceptionTranslationPostProcessor engedélyezve van, az alapértelmezett szabály igaz
###spring.datasource.abandon-when-percentage-fullsets az elhagyott kapcsolatok százaléka, amelyeket bezárnak vagy jelentenek az időszünet megszakításakor
###spring.datasource.allow-pool-suspension Hikari pool használatakor a hamisnak van állítva, hogy engedélyezik-e a kapcsolati pool szünetét.
###spring.datasource.alternate-username-allowed-engedélyezettek-e alternatív felhasználónevek.
###spring.datasource.auto-commitMegadja, hogy a frissítések automatikusan elkötelezettek-e.
A ###spring.datasource.catalog megadja az alapértelmezett katalógust.
###spring.datasource.commit-on-return határozza meg, hogy a kapcsolat visszaküldése után az összes fennálló tranzakciót kötelezővé kell kötelezni.
A ###spring.datasource.connection-init-sql azt határozza meg, hogy a kapcsolat a kapcsolat előtt jön létre és hozzáadva a SQL-hez, amelyet a kapcsolat pool előtt futtatnak.
###spring.datasource.connection-init-sqls DBCP kapcsolati pool használatakor határozd meg az inicializációkor végrehajtandó sql-t
###spring.datasource.connection-properties. [kulcs]Megadja a DBCP kapcsolati pool használatakor konfigurálandó attribútumokat
###spring.datasource.connection-test-query megadja azt az SQL utasítást, amely igazolja a kapcsolat végrehajtásának legitimitását
###spring.datasource.connection-timeoutMegadja a kapcsolat időlekérési idejét, milliszekundumokban.
###spring.datasource.continue-on-errorAmikor az adatbázist inicializálják, hibával találkozunk, hogy folytassuk-e vagy sem, az alapértelmezett szabály hamis.
A ###spring.datasource.data megadja az Data (DML) szkriptet
###spring.datasource.data-source-class-name Megadja az adatforrás teljes minősített nevét.
###spring.datasource.data-source-jndi megadja a jndi címét
###spring.datasource.data-source-properties. A Hikari kapcsolati poolt használva határozd meg a beállításra kerülő attribútumokat
###spring.datasource.db-properties a Tomcat kapcsolati poolt használja, amely megadja a beállításra várható tulajdonságokat
###spring.datasource.default-auto-commit automatikusan kötelezővé válik.
###spring.datasource.default-catalog megadja azt a katalógust, amely az alapértelmezetthez csatlakozik.
###spring.datasource.default-read-only-Tönkre állítsuk az alapértelmezett kapcsolatot csak olvashatóvá.
###spring.datasource.default-transaction-isolationMegadja az alapértelmezett izolációs szintet a kapcsolt tranzakciókhoz.
A ###spring.datasource.driver-class-name megadja az illesztőprogram osztálynevét, amelyet alapértelmezés szerint automatikusan észlel a jdbc URL-ről.
###spring.datasource.fair-queue Használja-e a FIFO visszacsatolásokat.
###spring.datasource.health-check-properties. [kulcs] Attribútum áthaladt, amikor a Hikari kapcsolati poolát használjuk szívverés ellenőrzése közben
###spring.datasource.idle-timeoutMegadja, mennyi ideig nincs használva a kapcsolat, ami alapértelmezetten tétlen állapotra van állítva
###spring.datasource.ignore-exception-on-pre-loadHogy a kivételt figyelmen kívül hagyjuk-e a kapcsolat poolának inicializálásakor.
###spring.datasource.init-sqlsql, amely akkor fut be, amikor kapcsolat létrejön
###spring.datasource.initial-size meghatározza a csatlakozások számát, amelyeket eredetileg létrehoztak a kapcsolat pool indításakor
###spring.datasource.initialization-fail-fastHa kapcsolati pool létrehozása, nem lehetséges meghatározott minimális számú kapcsolatot létrehozni kivétel létrehozásához
###spring.datasource.initializeMegadja, hogy inicializáljuk-e az adatforrást data.sql, alapértelmezett: true
###spring.datasource.isolate-internal-queries meghatározza, hogy a belső lekérdezéseket karanténba kell helyezni, alapértelmezett módon hamisra
###spring.datasource.jdbc-interceptors Tomcat kapcsolati pool használatakor határozd meg a jdbc interceptor és a célzó szétválasztást
###spring.datasource.jdbc-url megadja a JDBC URL-t.
###spring.datasource.jmx engedélyezett alapértelmezett: hamis
###spring.datasource.jndi-nameMegadja a jndi nevét.
###spring.datasource.leak-detection-threshold Hány milliszekundum észlelsz kapcsolati szivárgást, amikor a Hikari kapcsolati poolt használod?
###spring.datasource.log-abaned a DBCP kapcsolati poolt használja az elhagyott utasítások vagy kapcsolatok nyomon követésére, az alapértelmezett hiba
###spring.datasource.log-validation-errorTomcat connection pool használatakor, hogy kiírja-e validációs hibát.
###spring.datasource.login-timeoutMegadja az adatbázishoz való csatlakozás időtúli idejét.
Az ###spring.datasource.max-age meghatározza a csatlakozások maximális korát a kapcsolati poolban
Az ###spring.datasource.max-élet a kapcsolati pool maximális élettartamát milliszekundumban határozza meg.
###spring.datasource.max-open-prepared-statements meghatározza a maximális megnyitott előkészített kijelentések számát.
Az ###spring.datasource.max-wait megadja a maximális várakozási időt, amíg a kapcsolat visszatér, milliszekundumokban.
###spring.datasource.maximum-pool-sizeMegadja a kapcsolati pool maximális kapcsolatainak számát, beleértve az aktív és tétlen kapcsolatokat is.
###spring.datasource.min-evicable-idle-time-millisMegadja a szabad kapcsolatot a minimális ideig tartó tétlenségre, mielőtt törölhető.
###spring.datasource.min-idle megadja a minimális értéket, amelyet fenn kell tartani (DBCP és Tomcat kapcsolati poolok esetén)
###spring.datasource.minimum-idle meghatározza a kapcsolat által fenntartott minimális szabad kapcsolatok számát, és amikor HikariCP használatos.
###spring.datasource.name Megadd az adatforrás nevét.
###spring.datasource.num-tests-per-eviction-run meghatározza az objektumok számát az egyes tétlen objektum evitor szálakor futtatásakor
###spring.datasource.passwordMegadja az adatbázis jelszót.
###spring.datasource.platform megadja a sémához szükséges platformot (schema-${platform}.sql, amely alapértelmezett:
###spring.datasource.pool-nameMegadja a kapcsolat pool nevét.
###spring.datasource.pool-prepared-statementsMegadja, hogy használjak-e utasításokat.
###spring.datasource.propagate-interrupt-state-propagate-state-e a megszakítási állapot terjedése, ha a szálat megszakítják a kapcsolat várakozása alatt.
###spring.datasource.read-onlyA Hikari kapcsolati pool használatakor, hogy az adatforrást csak olvashatónak jelöljenek-e
###spring.datasource.register-mbeans meghatározza azt a Hikari kapcsolati pool regisztrálja-e a JMX MBeans-t.
A ###spring.datasource.repoista-abandoned megadja, hogy töröljék-e egy kapcsolatot közvetlenül az elhagyott időkérés után.
###spring.datasource.remove-abandoned-timeoutMegadja az időpontot, amikor a kapcsolatot el kell hagyni.
###spring.datasource.rollback-onreturnVissza kell fordítani egy függő tranzakciót a kapcsolat visszaküldésekor.
###spring.datasource.schema a a séma (DDL) szkriptet határozza meg.
###spring.datasource.separator megadja a szkript inicializálásához szolgáló utasítás-elválasztót, alapértelmezett: ;
Az ###spring.datasource.sql-script-encoding SQL szkriptek kódolását határozza meg.
###spring.datasource.suspect-timeoutMegadja az időkorlátot az elhagyott kapcsolat nyomtatása előtt.
###spring.datasource.test-on-BorrowAmikor kapcsolatot kölcsönzel egy kapcsolati poolból, tesztelj-e a kapcsolatot.
###spring.datasource.test-on-connect létrejött, hogy teszteljük-e a kapcsolatot
###spring.datasource.test-on-return-Visszakerül-e a kapcsolat a kapcsolati poolba.
###spring.datasource.test-while-idle-Végezzek-e kapcsolattesztet, amikor a kapcsolat tétlen.
###spring.datasource.time-between-eviction-runs-millis Megadja a műveleti időintervallumot az üres kapcsolatellenőrzések, az elhagyott kapcsolat tisztítása és az üres kapcsolat készlet méretezése között
###spring.datasource.transaction-isolation meghatározza a tranzakciós izolációs szintet, amelyet a Hikari kapcsolati pool használatakor határoznak meg
A ###spring.datasource.url megadja a JDBC URL-t.
###spring.datasource.use-disposable-connection-façade befonja a kapcsolatot, hogy megakadályozza annak használatát a zárás után.
###spring.datasource.use-equal, hogy a String.equals() helyettesítésére == használjuk-e.
###spring.datasource.use-lock zárolva van a kapcsolati műveletre
###spring.datasource.usernameMegadja az adatbázis nevét.
A ###spring.datasource.validation-interval megadja, hány ms kell kapcsolatellenőrzést végrehajtani.
###spring.datasource.validation-query az SQL lekérdezési utasítást határozza meg a kapcsolat érvényesítéséhez a kapcsolat megszerzésekor.
###spring.datasource.validation-query-timeoutMegadja a kapcsolat validációs lekérdezésének időtúli idejét.
###spring.datasource.validation-timeoutMegadja a kapcsolat ellenőrzésének időkorlátját, amelyet a Hikari kapcsolati pool használatakor határoznak meg
###spring.datasource.validator-class-name Az érvényesítő teljes minősítője a lekérdezés teszteléséhez.
###spring.datasource.xa.data-source-class-name Megadja az adatforrás teljes minősítőjét.
###spring.datasource.xa.properties határozza meg az XA adatforráshoz továbbított tulajdonságokat
###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-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring JPA konfigurációs információk
###spring.jpa.database megadja a céladatbázist.
###spring.jps.show-sq: Hogy megjelenítsük-e SQL utasításokat
###spring.jpa.hibernate.ddl-auto megadja a DDL módot (none, validál, frissít, create-drop). Beágyazott adatbázis használatában az alapértelmezés a create-drop (create-drop), egyébként nincs.
###spring.jpa.hibernate.naming-strategyMegadja a névozási szabályzatot.
###其他:
###spring.jpa.database-platformMegadja a céladatbázis típusát.
###spring.jpa.generate-ddl, hogy a séma indításkor inicializálja-e, alapértelmezett hamisa
###spring.jpa.hibernate.ddl-auto megadja a DDL módot (none, validál, frissít, create-drop). Beágyazott adatbázis használatában az alapértelmezés a create-drop (create-drop), egyébként nincs.
###spring.jpa.hibernate.naming-strategyMegadja a névozási szabályzatot.
###spring.jpa.open-in-view regisztrálja az OpenEntityManagerInViewInterceptor-t, és a JPA EntityManager-et a kérésszálhoz köti, az alapértelmezett igaz
A ###spring.jpa.properties további attribútumokat ad hozzá a JPA szolgáltatóhoz.
###spring.jpa.show-sql Az SQL log engedélyezése alapértelmezés szerint hamisnak van állítva.
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = igaz
spring.jpa.hibernate.ddl-auto = frissítés
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

Az egész csomagszerkezet



Adatforrás konfiguráció:




Egységosztály:



Adatbázis kezelőfelület:

Az adatbázis kezelőfelülete a JpaRepository generikus osztályból öröklik, és amikor ezt örökli, megszerzi azt az isteni hatalmat, amit a fejlesztőknek ad:



Ezeket a metódusosokat közvetlenül meg tudjuk hívni adatbázis-műveletek végrehajtására, és testreszabhatjuk a HQL-t is, hogy más, személyiségünkhöz illő műveleteket is teljesítsünk, például:

Ebben a kódban, @Query kommenten keresztül,Befejezte a HQL írásátahol a ":name" összhangban van az alábbi @Param annotációban szereplő paraméterrel.

Megjegyzés: A HQL táblanevének az ORM térkép osztálynevének kell lennie, és a HQL-nek van némi különbsége a hagyományos SQL állításokhoz képest, például a "*" jelentése eltér, stb.

Ha nem vagy hozzászokva a HQL-hez, SQL utasításokat is használhatsz:



A fenti módszer még akkor is hatékony, ha alkalmazzák.nativeQuery to true azt jelenti, hogy SQL nyelvet használ

Vezérlő osztály:

Indítsd el a projektet

A Hibernate automatikusan leképezi az entitásosztályokat az adatbázishoz, hogy releváns adatbázis-táblákat hozzon létre számunkra, és automatikusan egyezik az adatbázis táblákat olyan annotációk alapján, mint az @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO), stb. Sok táblázati munkát spórolsz.


(A projekt elindítása előtt először az adatbázist kell építened, és a tábla automatikusan megjön létre.)



hibernate_sequence tábla egy azonosító generáló stratégia, @GeneratedValue annotálva, a GenerationType.AUTO az automatikus generálást jelenti, feltéve, hogy az id attribútumnak int vagy hosszú típusú attribútumnak kell lennie; ha az azonosító String típusú, akkor ennek az annotációnak az id fölé helyezése azonnal hibát jelent. Ezért, ha a String típus idjére van szükség, nem kell az id-t @GeneratedValue-vel annotálni (strategy = GenerationType.AUTO).

Kérj tesztet

Teljes adatkérés és adatmentés a get és post rendszeren keresztül.


hívA hiperlink bejelentkezés látható.Az interfész POST kérése adathozzáadásra, ahogy az alábbi ábrán látható:



Az adatbázis lekérdezése a következő:



A következő felületen keresztül szerezze meg az adatokat:

A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.



Megjegyzés: Ahogy a fenti felület kérte, a Java nagyon érzékeny a kis- és nagybetűérzékenységre, legyen szó az URL címről vagy a paraméterekről, kis- és nagybetűérzékenynek kell lennie! Ha egy betű nagybetűs vagy kisbetűs, akkor a kérés nem jut el az interfészhez, vagy a paraméter üres lesz!

A druida a következő helyzeteket figyeli:






Végül csatoljuk a forráskódot:

Turisták, ha szeretnétek megnézni ennek a bejegyzésnek a rejtett tartalmát, kérlekVálasz


(Vége)





Előző:Nem sikerült beállítani egy adatforrást
Következő:Jieyou délutáni tea | 2019. február 20., szerda
Közzétéve 2019. 02. 21. 2:19:13 |
Nézd meg a tanulás tanulását.
Közzétéve 2019. 07. 05. 17:27:02 |
Tanulj meg...
Közzétéve 2019. 07. 22. 14:15:41 |
Nézd meg a tanulás tanulását.
Közzétéve 2019. 11. 21. 21:08:12 |
【Practical Combat】Spring Boot Hibernate Druid MySQL Project Construction Tutorial
Közzétéve 2020. 03. 30. 13:52:54 |
Nagyon köszönöm
Közzétéve 2020. 06. 28. 15:13:11 |
Nézd meg a nagyok kódtanulását
Közzétéve 2020. 11. 18. 23:57:19 |
Tanulj meg
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com