Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 36133|Отговор: 7

[Източник] Spring Boot Hibernate Druid Конструктор на MySQL проект Tutorial [с изходен код]

[Копирай линк]
Публикувано в 20.02.2019 г. 14:44:57 ч. | | | |
Също така съм недовършен с Java и не съм много запознат с Spring Family Bucket, а съм създал проектна рамка, базирана на онлайн уроци и част от собствения си опит.
Среда на проекта:JDK версия: 1.8.0_171, MySQL версия: 5.7.17, spring boot: 2.1.1.RELEASE, инструменти за разработка: idea.

Хибернация и JPA

Уеб проектът в тази статия използва Hibernate като рамка за слой за устойчивост. В Spring Boot трябва да разберем друга концепция: JPA

Предишното изречение може да е двусмислено, но това не означава, че JPA е концепция в Spring Boot. Вместо това, това е Java Persistence API, което се превежда на китайски като: Java Persistence Layer API.

JPA е стандартна спецификация, базирана на ORM (или O/R картографиране), при която JPA дефинира само стандартни правила и не предоставя реализация.

В момента основните реализации на JPA са Hibernate, EclipseLink, OpenJPA и др.

Поради доминацията на Hibernate в областта на технологиите за разрешаване на достъпа до данни, стандартът JPA е основно доминиран от Hibernate.

SpringBoot е автоматична пушка

Spring Data JPA се предоставя като интерфейсен инструмент за разработчиците да прилагат рамката Hibernate. Нашият Spring Boot предоставя напълно автоматизиран "модул за автоматични зависимости": spring-boot-starter-data-jpa


Структура на зависимостта на POM:

Някой има ли въпроси относно pom файла без цитат за хибернация?



Причината е, че както е показано на горната фигура, spring-boot-starter-data-jpa зависи от Hibernate-core, а при препратка към spring-boot-starter-data-jpa, проектът Maven автоматично въвежда пакета, от който зависи.


application.yml профил:

Официална информация за източника на данни за конфигурацията на пружината:Входът към хиперлинк е видим.

##########################################
###datasource - Уточнете информацията за връзката към MySQL базата данни
###spring.datasource.url: MySQL адрес
###spring.datasource.user: Потребителско име на база данни
###spring.datasource.password: Паролата за базата данни
###spring.datasource.driverClassName: Съответстващ на драйвера на базата данни
###spring.datasource.max-активен: Определя максималния брой активни връзки в пула за връзки
###spring.datasource.max-iddle: Определя максималния брой свободни връзки в пула от връзки.
###spring.datasource.min-idle: Определя минималната стойност, която трябва да се поддържа (за DBCP и Tomcat пулове на връзката)
###spring.datasource.initial-size: Определя броя на връзките, първоначално установени при стартиране на пула на връзките
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled независимо дали PersistenceExceptionTranslationPostProcessor е активиран, по подразбиране е вярно
###spring.datasource.abandon-when-percentage-fullsets – процентът на изоставените връзки, които са затворени или докладвани, когато таймаутът е прекратен
###spring.datasource.allow-pool-suspension При използване на Hikari pool, дали да се позволи паузиране на пула за връзки се задава на false
###spring.datasource.alternate-username-allowedдали алтернативни потребителски имена са позволени.
###spring.datasource.auto-commitУточнява дали актуализациите се правят автоматично.
###spring.datasource.catalog определя стандартния каталог.
###spring.datasource.commit-on-return задава дали да се комитират всички неизпълнени транзакции при връщане на връзката
###spring.datasource.connection-init-sql уточнява, че връзката се създава и добавя към sql-а, изпълнена преди пула на връзката.
###spring.datasource.connection-init-sqls При използване на DBCP пула за връзки, задайте sql, който трябва да се изпълнява при инициализация
###spring.datasource.connection-properties. [ключ]Определя атрибутите, които трябва да се конфигурират при използване на DBCP пула за връзки
###spring.datasource.connection-test-query определя SQL оператора, който проверява легитимността на изпълнението на връзката
###spring.datasource.connection-timeoutОпределя времето за тайм-аут за връзката, в милисекунди.
###spring.datasource.continue-on-errorПри инициализация на базата данни и срещане на грешка дали да продължи или не, по подразбиране е невярно
###spring.datasource.data специфицира скрипта Data (DML)
###spring.datasource.data-source-class-name Определя напълно квалифицираното име на източника на данни.
###spring.datasource.data-source-jndi посочва адреса на JNDI
###spring.datasource.data-source-properties. Когато използвате Hikari пула за връзки, задайте атрибутите, които трябва да се зададат
###spring.datasource.db-свойства използва пула за връзки Tomcat, като определя свойствата, които трябва да се зададат
###spring.datasource.default-auto-commit се прави автоматично.
###spring.datasource.default-catalog определя каталога, който се свързва с подразбирането.
###spring.datasource.default-read-onlyДали да се настрои по подразбиране връзката само за четене.
###spring.datasource.default-transaction-isolationОпределя нивото на изолация по подразбиране за свързани транзакции.
###spring.datasource.driver-class-name определя името на класа на драйвера, което по подразбиране се открива автоматично от jdbc URL адреса.
###spring.datasource.fair-queue Дали да се използват FIFO връщащи връзки.
###spring.datasource.health-check-properties. [ключ] Атрибутът е предаден при използване на пула за връзки Hikari по време на проверка на сърдечния ритъм
###spring.datasource.idle-timeoutОпределя колко дълго връзката не се използва, като по подразбиране е настроена на неактивна
###spring.datasource.ignore-exception-on-pre-loadДали изключението се игнорира при инициализация на пула на връзката.
###spring.datasource.init-sqlsql, който се изпълнява при създаване на връзка
###spring.datasource.initial-size определя броя на връзките, първоначално установени при стартиране на пула на връзките
###spring.datasource.initialization-fail-fastПри създаване на пул за връзки не е възможно да се създаде определен минимален брой връзки за хвърляне на изключение
###spring.datasource.initializeПосочете дали да инициализирате източника на данни с data.sql, по подразбиране: true
###spring.datasource.isolate-internal-queries определя дали вътрешните заявки трябва да бъдат поставени под карантина, като по подразбиране става false
###spring.datasource.jdbc-interceptors при използване на пула за връзки на Tomcat, посочете разделянето на jdbc interceptor и точката и запетая
###spring.datasource.jdbc-url определя URL адреса на JDBC.
###spring.datasource.jmx-enabled е активиран по подразбиране: false
###spring.datasource.jndi-nameУточнява името на jndi.
###spring.datasource.leak-detection-threshold Колко милисекунди засичате теч на връзка, когато използвате пула за връзки на Hikari?
###spring.datasource.log-abandoned използва DBCP пула за връзки за проследяване на изоставени оператори или връзки, като по подразбиране е невярно
###spring.datasource.log-валидация-грешкиКогато използвате Tomcat пул за връзка, дали да се отпечата валидационна грешка.
###spring.datasource.login-timeoutОпределя времето за свързване с базата данни.
###spring.datasource.max-възраст определя максималната възраст на връзките в пула за връзки
###spring.datasource.max-живот определя максималния живот на връзките в пула на връзките, в милисекунди.
###spring.datasource.max-open-prepared-statements определя максималния брой готови изказвания, които се отварят.
###spring.datasource.max-wait определя максималното време за изчакване на пула за връщане на връзката, в милисекунди.
###spring.datasource.maximum-pool-sizeОпределя максималния брой връзки в пула на връзките, включително активни и неактивни връзки.
###spring.datasource.min-evictable-idle-time-millisОпределя свободна връзка за минималното време, през което може да бъде в покой, преди да бъде изчистена.
###spring.datasource.min-idle определя минималната стойност, която трябва да се поддържа (за DBCP и Tomcat пулове за връзка)
###spring.datasource.minimum-idle определя минималния брой свободни връзки, поддържани от една връзка, и при използване на HikariCP.
###spring.datasource.name Уточнете името на източника на данни.
###spring.datasource.num-tests-per-eviction-run определя броя на обектите при изпълнение на всяка неактивна нишка на evitor
###spring.datasource.passwordПосочи паролата за базата данни.
###spring.datasource.platform определя платформата (schema-${platform}.sql за използване за схемата, която по подразбиране се определя на: всички
###spring.datasource.pool-nameСпецифицира името на пула за връзки.
###spring.datasource.pool-prepared-statementsУточнява дали да се обединяват оператори.
###spring.datasource.propagate-interrupt-stateДали да се разпространява състоянието на прекъсване, ако нишката е прекъсната, докато чака връзката.
###spring.datasource.read-onlyКогато използвате Hikari пула за връзки, дали да маркирате източника на данни като само за четене
###spring.datasource.register-mbeans посочва дали пулът за връзки Hikari регистрира JMX MBeans.
###spring.datasource.remove-abandoned уточнява дали да се изтрие връзка веднага след изхвърленото време.
###spring.datasource.remove-abandoned-timeoutОпределя времето, когато връзката трябва да бъде прекъсната.
###spring.datasource.rollback-on-returnДали да се върне чакаща транзакция при връщане на връзка.
###spring.datasource.schema определя скрипта Schema (DDL).
###spring.datasource.separator определя разделителя на оператори за инициализация на скрипта, по подразбиране: ;
###spring.datasource.sql-script-encoding определя кодирането на SQL скриптове.
###spring.datasource.suspect-timeoutПосочва таймаута преди отпечатване на изоставената връзка.
###spring.datasource.test-on-borrowПри заемане на връзка от пул връзки, дали да се тества връзката.
###spring.datasource.test-on-connect се създава, дали да се тества връзката
###spring.datasource.test-on-returnДали връзката се връща в пула на връзките.
###spring.datasource.test-while-iddleДали да се извърши тест за връзка, когато връзката е неактивна.
###spring.datasource.time-between-eviction-runs-millis Определя интервала на време за работа между проверки на неактивна връзка, почистване на изоставена връзка и оразмеряване на пула от неактивни връзки
###spring.datasource.transaction-isolation определя нивото на изолация на транзакции, което се задава при използване на пула на връзките Hikari
###spring.datasource.url определя JDBC URL адреса.
###spring.datasource.use-disposable-connection-façade обвива връзката, за да предотврати използването ѝ след затваряне.
###spring.datasource.use-равно на това дали да се използва String.equals() като заместител ==.
###spring.datasource.use-lock е заключен при операцията за връзка
###spring.datasource.usernameПосочи името на базата данни.
###spring.datasource.validation-interval определя колко ms да се извърши проверка на връзката.
###spring.datasource.validation-query специфицира SQL заявката за валидиране на връзката при получаване на връзка.
###spring.datasource.validation-query-timeoutОпределя времето за тайм-аут за заявката за валидация на връзката.
###spring.datasource.validation-timeoutЗадава времето за тайм-аут за валидиране на връзката, което се задава при използване на пула за връзки Hikari
###spring.datasource.validator-class-name Пълният квалификатор на валидатора, използван за тестване на заявката.
###spring.datasource.xa.data-source-class-name Определя пълния квалификатор на източника на данни.
###spring.datasource.xa.properties определя свойствата, предавани към 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-активен=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring Информация за конфигурацията на JPA
###spring.jpa.database посочва целевата база данни.
###spring.jps.show-sq: Дали да се показват SQL оператори
###spring.jpa.hibernate.ddl-auto определя DDL режим (none, validate, update, create, create-drop). При използване на вградена база данни по подразбиране е create-drop, в противен случай е никакви.
###spring.jpa.hibernate.naming-strategyУточнете политиката за именуване.
###其他:
###spring.jpa.database-platformСпецифицира типа целева база данни.
###spring.jpa.generate-ddl дали да се инициализира схемата при стартиране, по подразбиране е false
###spring.jpa.hibernate.ddl-auto определя DDL режим (none, validate, update, create, create-drop). При използване на вградена база данни по подразбиране е create-drop, в противен случай е никакви.
###spring.jpa.hibernate.naming-strategyУточнете политиката за именуване.
###spring.jpa.open-in-view регистрира OpenEntityManagerInViewInterceptor и свързва JPA EntityManager към нишката за заявка, като по подразбиране е вярно
###spring.jpa.properties добавя допълнителни атрибути към JPA доставчика.
###spring.jpa.show-sql Дали да се активира SQL log по подразбиране е зададена на false
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = вярно
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

Цялата структура на пакета



Конфигурация на източника на данни:




Клас на обекти:



Интерфейс за работа с база данни:

Интерфейсът за операции с база данни наследява от генеричния клас JpaRepository и когато го наследява, получава божествената сила, която дарява на разработчиците:



Можем директно да извикаме тези методи за извършване на операции с база данни, а също така можем да персонализираме HQL, за да изпълнява други операции, които отговарят на нашата личност, като:

В този код, чрез @Query коментар,Завършва писането на HQLкъдето ":name" е съвместимо с параметъра в анотацията @Param по-долу.

Забележка: Името на таблицата в HQL трябва да е името на класа на ORM картата, а HQL има някои разлики от традиционните SQL оператори, като например значението на "*" е различно и т.н.

Ако не сте свикнали да използвате HQL, можете да използвате и SQL оператори:



Горният метод все още е ефективен, когато се изпълни.nativeQuery към true означава използването на езика SQL

Клас контролер:

Започнете проекта

Hibernate автоматично ще съпоставя класове на обекти към базата данни, за да създаде релевантни таблици за нас, и автоматично ще съвпадне с таблици на базата данни въз основа на анотации като @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO) и др. Спестете много работа с преброяване.


(Преди да започнете проекта, първо трябва да изградите базата данни и таблицата ще се създаде автоматично)



hibernate_sequence таблица е стратегия за генериране на id @GeneratedValue анотирана, GenerationType.AUTO представлява автоматично генериране, при условие че id атрибутът трябва да е int или long тип тип; ако е id от String тип, добавянето на тази анотация върху id веднага ще отчете грешка. Следователно, ако е за id на типа String, не е нужно да анотирате id с @GeneratedValue (strategy = GenerationType.AUTO).

Поискайте тест

Пълна заявка за данни и запазване на данни чрез get и post съответно.


ПозовеВходът към хиперлинк е видим.Интерфейсът POST иска за добавяне на данни, както е показано на следващата фигура:



Заявката към базата данни е следната:



Получавайте данните чрез следния интерфейс:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.



Забележка: Както е поискано от горния интерфейс, Java е много чувствителна към регистра, независимо дали става дума за URL адреса или параметрите, тя трябва да е с главни букви! Ако буквата е с големи или малки, заявката ще не достигне до интерфейса или параметърът ще бъде празен!

Друидът наблюдава следните ситуации:






Накрая, прикачете изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор


(Край)





Предишен:Не успях да конфигурирам DataSource
Следващ:Следобеден чай Джию | Сряда, 20 февруари 2019 г.
Публикувано в 21.02.2019 г. 2:19:13 ч. |
Погледни как да се научиш да учиш.
Публикувано в 5.07.2019 г. 17:27:02 ч. |
Научи се да учиш...
Публикувано в 22.07.2019 г. 14:15:41 ч. |
Погледни как да се научиш да учиш.
Публикувано в 21.11.2019 г. 21:08:12 ч. |
【Practical Combat】Spring Boot Hibernate Druid MySQL Project Construction Tutorial
Публикувано в 30.03.2020 г. 13:52:54 ч. |
Много благодаря
Публикувано в 28.06.2020 г. 15:13:11 ч. |
Погледни как се учи програмирането на големите играчи
Публикувано в 18.11.2020 г. 23:57:19 ч. |
Научи се да учиш
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com