Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 37216|Odpowiedź: 7

[Źródło] Tutorial Spring Boot Hibernate Druid MySQL Project Construction [z kodem źródłowym]

[Skopiuj link]
Opublikowano 20.02.2019 14:44:57 | | | |
Jestem też niedokończony w Javie i nie znam się zbyt dobrze na wiosennym bucketie, a framework projektowy oparty na tutorialach online i własnych doświadczeniach.
Środowisko projektu:Wersja JDK: 1.8.0_171, wersja MySQL: 5.7.17, Spring Boot: 2.1.1.RELEASE, narzędzia programistyczne: idea.

Hibernacja i JPA

Projekt webowy opisany w tym artykule wykorzystuje Hibernate jako framework warstwy trwałości. W Spring Boot musimy zrozumieć jeszcze jedną koncepcję: JPA

Poprzednie zdanie może być niejednoznaczne, ale nie oznacza, że JPA jest pojęciem w Spring Boot. Zamiast tego jest to Java Persistence API, które na chiński tłumaczy się jako: Java Persistence Layer API.

JPA to standardowa specyfikacja oparta na ORM (lub mapowaniu O/R), w której JPA definiuje jedynie standardowe reguły i nie zapewnia implementacji.

Obecnie główne implementacje JPA to Hibernate, EclipseLink, OpenJPA i inne.

Ze względu na dominację Hibernate w dziedzinie technologii rozdzielania dostępu do danych, standard JPA jest zasadniczo zdominowany przez Hibernate.

SpringBoot to karabin automatyczny

Spring Data JPA jest udostępniany jako narzędzie interfejsu dla deweloperów do stosowania frameworka Hibernate. Nasz Spring Boot oferuje w pełni zautomatyzowany "automatyczny moduł zależności": spring-boot-starter-data-jpa


Struktura zależności POM:

Czy ktoś ma pytania dotyczące pliku pom bez cytowania za hibernację?



Powodem jest to, że jak pokazano na powyższym rysunku, spring-boot-starter-data-jpa zależy od hibernate-core, a przy odwoływaniu się do spring-boot-starter-data-jpa, projekt maven automatycznie wprowadza pakiet, od którego zależy.


application.yml Profil:

Oficjalny link do źródła danych konfiguracji Spring Configuration:Logowanie do linku jest widoczne.

##########################################
###datasource - Określ informacje o połączeniu z bazą danych mysql
###spring.datasource.url: adres MySQL
###spring.datasource.user: Nazwa użytkownika bazy danych
###spring.datasource.password: Hasło do bazy danych
###spring.datasource.driverClassName: Odpowiadający sterownikowi bazy danych
###spring.datasource.max-aktywny: Określa maksymalną liczbę aktywnych połączeń w puli połączeń
###spring.datasource.max-bezczynny: Określa maksymalną liczbę wolnych połączeń w puli połączeń.
###spring.datasource.min-idle: Określa minimalną wartość, którą trzeba utrzymać (dla pooli połączeń DBCP i Tomcat)
###spring.datasource.initial-size: Określa liczbę połączeń początkowo nawiązanych podczas uruchamiania puli połączeń
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled niezależnie od tego, czy PersistenceExceptionTranslationPostProcessor jest włączony, domyślnie jest prawdziwe
###spring.datasource.abandon-when-percentage-fullsets to procent porzuconych połączeń, które są zamykane lub zgłaszane po przerwie
###spring.datasource.allow-pool-suspension Podczas korzystania z puli Hikari, czy dopuścić pulę połączeń do pauzy, jest ustawione na false
###spring.datasource.alternate-username-allowed, czy dozwolone są alternatywne nazwy użytkownika.
###spring.datasource.auto-commitOkreśla, czy aktualizacje są automatycznie zatwierdzane.
###spring.datasource.catalog określa domyślny katalog.
###spring.datasource.commit-on-return decyduje, czy zatwierdzać wszystkie zaległe transakcje po zwrotie połączenia
###spring.datasource.connection-init-sql określa, że połączenie jest tworzone i dodawane do SQL wykonanego przed pulą połączeń.
###spring.datasource.connection-init-sqls Korzystając z puli połączeń DBCP, określ sql, który ma być wykonany podczas inicjalizacji
###spring.datasource.connection-properties. [key]Określa atrybuty konfigurowane podczas korzystania z puli połączeń DBCP
###spring.datasource.connection-test-query określa polecenie SQL, które weryfikuje wiarygodność wykonania połączenia
###spring.datasource.connection-timeoutOkreśla czas przerwy dla połączenia, w milisekundach.
###spring.datasource.continue-on-errorPodczas inicjalizacji bazy danych, napotykając błąd, czy kontynuować, domyślnie jest fałszywy
###spring.datasource.data określa skrypt Data (DML)
###spring.datasource.data-source-class-name Określa w pełni kwalifikowaną nazwę źródła danych.
###spring.datasource.data-source-jndi określa adres jndi
###spring.datasource.data-source-properties. Korzystając z puli połączeń Hikari, określ atrybuty, które mają być ustawione
###spring.datasource.db-właściwości wykorzystuje pulę połączeń Tomcata, określając właściwości do ustawienia
###spring.datasource.default-auto-commit jest automatycznie zatwierdzany.
###spring.datasource.default-catalog określa katalog łączący się z domyślnym.
###spring.datasource.default-read-onlyCzy ustawić domyślne połączenie na tylko do odczytu.
###spring.datasource.default-transaction-isolationOkreśla domyślny poziom izolacji dla połączonych transakcji.
###spring.datasource.driver-class-name określa nazwę klasy sterownika, która domyślnie jest automatycznie wykrywana z adresu URL jdbc.
###spring.datasource.fair-queue Czy użyć połączeń zwrotnych FIFO.
###spring.datasource.health-check-properties. [klucz] Atrybut przekazany przy użyciu puli połączeń Hikari podczas sprawdzania tętna
###spring.datasource.idle-timeoutOkreśla, jak długo połączenie nie jest używane, co domyślnie jest ustawione na bezczynność
###spring.datasource.ignore-exception-on-pre-load. Czy wyjątek jest ignorowany podczas inicjalizacji puli połączeń.
###spring.datasource.init-sqlsql, który wykonuje się po utworzeniu połączenia
###spring.datasource.initial-size określa liczbę połączeń początkowo nawiązanych w momencie uruchomienia puli połączeń
###spring.datasource.initialization-fail-fast Podczas tworzenia puli połączeń nie jest możliwe utworzenie określonej minimalnej liczby połączeń do wyrzucenia wyjątku
###spring.datasource.initializeOkreśl, czy inicjalizować źródło danych data.sql, domyślnie: true
###spring.datasource.isolate-internal-queries określa, czy zapytania wewnętrzne mają być kwarantannie, domyślnie ustawiając fałszywe
###spring.datasource.jdbc-interceptors Korzystając z puli połączeń Tomcata, określ rozdzielenie przechwytującego i średnika jdbc
###spring.datasource.jdbc-url określa adres URL JDBC.
###spring.datasource.jmx-enabled jest domyślnie włączone: false
###spring.datasource.jndi-nameOkreśla nazwę jndi.
###spring.datasource.leak-detection-threshold Ile milisekund wykrywasz wyciek połączenia podczas korzystania z puli połączeń Hikari?
###spring.datasource.log-abandoned wykorzystuje pulę połączeń DBCP do śledzenia porzuconych instrukcji lub połączeń, domyślnie jest to fałszywe
###spring.datasource.log-błędy walidacyjne Podczas korzystania z puli połączeń Tomcat, czy wypisać błąd walidacyjny.
###spring.datasource.login-timeoutOkreśla czas przerwy na połączenie z bazą danych.
###spring.datasource.max-age określa maksymalny wiek połączeń w puli połączeń
###spring.datasource.max czas życia określa maksymalny czas życia połączeń w puli połączeń, wynoszony w milisekundach.
###spring.datasource.max-open-prepared-statementokreśla maksymalną liczbę przygotowanych oświadczeń, które są otwierane.
###spring.datasource.max-wait określa maksymalny czas oczekiwania, jaki pula połączeń może poczekać na powrót połączenia, w milisekundach.
###spring.datasource.maximum-pool-sizeOkreśla maksymalną liczbę połączeń w puli połączeń, w tym aktywnych i bezczynnych.
###spring.datasource.min-evictable-idle-time-millisOkreśla wolne połączenie przez minimalny czas, przez jaki może być bezczynne, zanim zostanie ono zwolnione.
###spring.datasource.min-idle określa minimalną wartość, którą trzeba utrzymać (dla pul połączeń DBCP i Tomcat)
###spring.datasource.minimum-idle określa minimalną liczbę wolnych połączeń utrzymywanych przez połączenie oraz przy użyciu HikariCP.
###spring.datasource.name Określ nazwę źródła danych.
###spring.datasource.num-tests-per-eviction-run określa liczbę obiektów podczas uruchamiania każdego wątku evitor obiektów bezczynności
###spring.datasource.passwordOkreśl hasło do bazy danych.
###spring.datasource.platform określa Platformę (schema-${platform}.sql do użycia dla schematu, która domyślnie jest na: all
###spring.datasource.pool-nameOkreśla nazwę puli połączeń.
###spring.datasource.pool-prepared-statementsOkreśla, czy należy łączyć wyciągi.
###spring.datasource.propagate-interrupt-stateCzy propagować stan przerwania, jeśli wątek zostanie przerwany podczas oczekiwania na połączenie.
###spring.datasource.read-only Podczas korzystania z puli połączeń Hikari, czy oznaczyć źródło danych jako tylko do odczytu
###spring.datasource.register-mbeans określa, czy pula połączeń Hikari rejestruje JMX MBeans.
###spring.datasource.remove-abandoned określa, czy należy usunąć połączenie natychmiast po upływie porzuconego czasu czasowego.
###spring.datasource.remove-abandoned-timeoutOkreśla moment, w którym połączenie powinno zostać przerwane.
###spring.datasource.rollback-on-returnCzy cofnąć oczekującą transakcję podczas przywracania połączenia.
###spring.datasource.schema określa skrypt Schema (DDL).
###spring.datasource.separator określa separator instrukcji do inicjalizacji skryptu, domyślnie: ;
###spring.datasource.sql-script-encoding określa kodowanie skryptów SQL.
###spring.datasource.suspect-timeoutOkreśla czas przed wydrukowaniem porzuconego połączenia.
###spring.datasource.test-on-borrowKiedy pożyczam połączenie z puli połączeń, czy warto je przetestować.
###spring.datasource.test-on-connect jest tworzony, niezależnie od tego, czy testuje połączenie
###spring.datasource.test-on-returnTCzy połączenie jest zwracane do puli połączeń.
###spring.datasource.test-while-idleCzy wykonać test połączenia, gdy połączenie jest bezczynne.
###spring.datasource.time-between-eviction-runs-millis Określa interwał czasu działania między kontrolami połączenia bezczynności, czyszczeniem porzuconych połączeń oraz rozmiarowaniem puli połączeń bezczynnych
###spring.datasource.transaction-isolation określa poziom izolacji transakcji, który jest określany przy użyciu puli połączeń Hikari
###spring.datasource.url określa adres URL JDBC.
###spring.datasource.use-disposable-connection-façade owija połączenie, aby zapobiec jego użyciu po jego zamknięciu sieci.
###spring.datasource.use-equals, czy użyć String.equals() do zastąpienia ==.
###spring.datasource.use-lock jest zablokowany na operacji połączenia
###spring.datasource.usernameOkreśl nazwę bazy danych.
###spring.datasource.validation-interval określa, ile ms należy wykonać sprawdzenie połączenia.
###spring.datasource.validation-query określa polecenie SQL do walidacji połączenia przy uzyskaniu połączenia.
###spring.datasource.validation-query-timeoutOkreśla czas przekroczenia dla zapytania o walidację połączenia.
###spring.datasource.validation-timeoutUstala czas przejścia dla walidacji połączenia, który jest określony przy użyciu puli połączeń Hikari
###spring.datasource.validator-class-name Pełny kwalifikator walidatora używany do testowania zapytania.
###spring.datasource.xa.data-source-class-name Określa pełny kwalifikator źródła danych.
###spring.datasource.xa.properties określa właściwości przekazane do źródła danych XA
###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-bezczynny=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring Informacje konfiguracyjne JPA
###spring.jpa.database określa docelową bazę danych.
###spring.jps.show-sq: Czy wyświetlać instrukcje SQL
###spring.jpa.hibernate.ddl-auto określa tryb DDL (brak, weryfikacja, aktualizacja, tworzenie, tworzenie-upuszczanie). W przypadku korzystania z osadzonej bazy danych domyślnie jest create-drop, w przeciwnym razie nie ma go wcale.
###spring.jpa.hibernate.naming-strategyOkreśl politykę nazewnictwa.
###其他:
###spring.jpa.database-platformOkreśla typ docelowej bazy danych.
###spring.jpa.generate-ddl czy inicjalizować schemat przy starcie, domyślnie jest false
###spring.jpa.hibernate.ddl-auto określa tryb DDL (brak, weryfikacja, aktualizacja, tworzenie, tworzenie-upuszczanie). W przypadku korzystania z osadzonej bazy danych domyślnie jest create-drop, w przeciwnym razie nie ma go wcale.
###spring.jpa.hibernate.naming-strategyOkreśl politykę nazewnictwa.
###spring.jpa.open-in-view rejestruje OpenEntityManagerInViewInterceptor i wiąże JPA EntityManager z wątkiem żądania, domyślnie jest prawdziwe
###spring.jpa.properties dodaje dodatkowe atrybuty do dostawcy JPA.
###spring.jpa.show-sql Czy włączyć log SQL jest domyślnie ustawione na false
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = aktualizacja
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImbetterNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

Cała struktura pakietu



Konfiguracja źródła danych:




Klasa podmiotu:



Interfejs operacyjny bazy danych:

Interfejs operacji bazy danych dziedziczy generyczną klasę JpaRepository, a gdy ją dziedziczy, zyskuje boską moc, którą przekazuje programistom:



Możemy bezpośrednio wywoływać te metody do wykonywania operacji bazodanowych, a także dostosować HQL do realizacji innych operacji odpowiadających naszej osobie, takich jak:

W tym kodzie, przez @Query komentarz,Zakończono pisanie HQLgdzie ":name" jest zgodne z parametrem w @Param anotacji poniżej.

Uwaga: Nazwa tabeli w HQL powinna być nazwą klasy mapy ORM, a HQL różni się od tradycyjnych instrukcji SQL, na przykład znaczenie "*" jest inne itd.

Jeśli nie jesteś przyzwyczajony do używania HQL, możesz też użyć instrukcji SQL:



Powyższa metoda jest nadal skuteczna, gdy jest stosowana.nativeQuery to true oznacza używanie języka SQL

Klasa kontrolera:

Rozpocznij projekt

Hibernate automatycznie przypisuje klasy encji do bazy danych, aby tworzyć odpowiednie tabele bazowe, i automatycznie dopasowuje tabele bazowe na podstawie adnotacji takich jak @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO) itd. Oszczędzasz dużo pracy przy liczeniu.


(Przed rozpoczęciem projektu musisz najpierw zbudować bazę danych, a tabela zostanie automatycznie utworzona)



hibernate_sequence tabela to strategia generowania id @GeneratedValue anotowana, GenerationType.AUTO reprezentuje generowanie automatyczne, pod warunkiem że atrybut id musi być atrybutem int lub long; jeśli jest to id typu String, dodanie tej adnotacji na id natychmiast zgłosi błąd. Dlatego jeśli dotyczy id typu String, nie musisz adnotować id @GeneratedValue (strategy = GenerationType.AUTO).

Poproś o test

Kompletne żądanie danych i zapis danych przez get i post.


wywołaćLogowanie do linku jest widoczne.Interfejs POST żąda dodania danych, jak pokazano na poniższym rysunku:



Zapytanie do bazy danych wygląda następująco:



Uzyskaj dane przez następujący interfejs:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.



Uwaga: Zgodnie z wymaganiami powyższego interfejsu, Java jest bardzo wrażliwa na wrażliwość na wielkości liter, niezależnie od adresu URL, czy parametrów, musi być rozróżniająca wielka litera! Jeśli litera jest wielka lub mała, spowoduje to, że żądanie nie dotrze do interfejsu lub parametr będzie pusty!

Druid monitoruje następujące sytuacje:






Na koniec dołącz kod źródłowy:

Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszęOdpowiedź


(Koniec)





Poprzedni:Nie udało się skonfigurować DataSource
Następny:Jieyou Popołudniowa Herbata | Środa, 20 lutego 2019
Opublikowano 21.02.2019 02:19:13 |
Spójrz na naukę nauki.
Opublikowano 05.07.2019 17:27:02 |
Naucz się uczyć...
Opublikowano 22.07.2019 14:15:41 |
Spójrz na naukę nauki.
Opublikowano 21.11.2019 21:08:12 |
【Praktyczny Combat】Tutorial Spring Boot Hibernate Druid MySQL Project Construction
Opublikowano 30.03.2020 13:52:54 |
Bardzo dziękuję
Opublikowano 28.06.2020 15:13:11 |
Spójrz na naukę kodu u dużych graczy
Opublikowano 18.11.2020 23:57:19 |
Naucz się uczyć
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com