Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 36133|Ответ: 7

[Источник] Учебник по созданию проекта MySQL Spring Boot Druid Hibernate [с исходным кодом]

[Скопировать ссылку]
Опубликовано 20.02.2019 14:44:57 | | | |
Я тоже недоработано в Java и не очень хорошо знаком с ведром семейства Spring и создал проектный фреймворк на основе онлайн-уроков и собственного опыта.
Среда проекта:версия JDK: 1.8.0_171, версия MySQL: 5.7.17, весенняя загрузка: 2.1.1. RELEASE, инструменты разработки: IDEA.

Hibernate и 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-active: Задаёт максимальное количество активных соединений в пуле соединений
###spring.datasource.max-в простое: Задаёт максимальное количество свободных соединений в пуле соединений.
###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 разрешать паузу пулу соединений устанавливается как 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 указывает название класса драйвера, которое автоматически определяется по URL jdbc по умолчанию.
###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-validation-errorПри использовании пула соединений 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 указывает количество объектов при запуске каждого потока простаивающего объекта
###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-idleНужно ли проводить тест соединения при простое.
###spring.datasource.time-between-eviction-runs-millis Задаёт интервал времени работы между тестами в режиме простоя, очисткой оставленного соединения и размером пула соединений в режиме простоя
###spring.datasource.transaction-isolation определяет уровень изоляции транзакций, который задаётся при использовании пула соединений Hikari
###spring.datasource.url указывает URL JDBC.
###spring.datasource.use-disposable-connection-façade обворачивает соединение, чтобы предотвратить его использование после закрытия.
###spring.datasource.use-равно, использовать ли String.equals() вместо ==.
###spring.datasource.use-lock заблокирован на операции соединения
###spring.datasource.usernameУкажите имя базы данных.
###spring.datasource.validation-interval указывает, сколько мс нужно выполнить проверку соединения.
###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-журнала по умолчанию установлено как false
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = истинно
spring.jpa.hibernate.ddl-auto = обновление
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 to 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 |
Посмотрите курс обучения учиться.
Опубликовано 05.07.2019 17:27:02 |
Научись учиться...
Опубликовано 22.07.2019 14:15:41 |
Посмотрите курс обучения учиться.
Опубликовано 21.11.2019 21:08:12 |
【Практический бой】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