Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 36133|Répondre: 7

[Source] Tutoriel de construction de projet MySQL Spring Boot Hibernate Druid [avec code source]

[Copié le lien]
Publié sur 20/02/2019 14:44:57 | | | |
Je maîtrise aussi un peu Java et je ne connais pas très bien la famille des springs, et j’ai construit un cadre de projet basé sur des tutoriels en ligne et une partie de ma propre expérience.
Environnement du projet :Version JDK : 1.8.0_171, version mysql : 5.7.17, spring boot : 2.1.1.RELEASE, outils de développement : idea.

Hibernation et JPA

Le projet web de cet article utilise Hibernate comme cadre de couche de persistance. Dans Spring Boot, nous devons comprendre un autre concept : JPA

La phrase précédente peut être ambiguë, mais cela ne signifie pas que JPA est un concept dans Spring Boot. Il s’agit plutôt de Java Persistence API, traduite en chinois par : Java Persistence Layer API.

JPA est une spécification standard basée sur l’ORM (ou la correspondance O/R), dans laquelle JPA ne définit que des règles standard et ne fournit pas d’implémentation.

Actuellement, les principales implémentations de JPA sont Hibernate, EclipseLink, OpenJPA, etc.

En raison de la domination de Hibernate dans le domaine de la technologie de résolution d’accès aux données, la norme JPA est essentiellement dominée par Hibernate.

Le SpringBoot est un fusil automatique

Spring Data JPA est fourni comme un outil d’interface pour les développeurs souhaitant appliquer le cadre Hibernate. Notre Spring Boot propose un « module de dépendance automatique » entièrement automatisé : spring-boot-starter-data-jpa


Structure de dépendance POM :

Est-ce que quelqu’un a des questions sur le fichier POM sans citation pour Hibernate ?



La raison en est que, comme montré dans la figure ci-dessus, spring-boot-starter-data-jpa dépend de hibernate-core, et lorsqu’il fait référence à spring-boot-starter-data-jpa, le projet Maven introduira automatiquement le package dont il dépend.


application.yml Profil :

Lien officiel sur les sources de données de configuration de Spring :La connexion hyperlientérée est visible.

##########################################
###datasource - Spécifier les informations de connexion à la base de données mysql
###spring.datasource.url : Adresse MySQL
###spring.datasource.user : Nom d’utilisateur de la base de données
###spring.datasource.password : Le mot de passe de la base de données
###spring.datasource.driverClassName : Correspondant au pilote de la base de données
###spring.datasource.max-actif : Spécifie le nombre maximal de connexions actives dans le pool de connexions
###spring.datasource.max-inactif : Spécifie le nombre maximal de connexions libres dans le pool de connexions.
###spring.datasource.min-idle : Spécifie la valeur minimale à maintenir (pour les pools de connexion DBCP et Tomcat)
###spring.datasource.initial-size : Spécifie le nombre de connexions initialement établies au lancement du pool de connexions
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled : PersistenceExceptionTranslationPostProcessor est activé, le défaut est vrai
###spring.datasource.abandon-when-percentage-fullsets le pourcentage de connexions abandonnées qui sont fermées ou signalées lorsque le timeout est abandonné
###spring.datasource.allow-pool-suspension Lors de l’utilisation du pool Hikari, la possibilité d’autoriser la mise en pause du pool de connexion est réglée sur faux
###spring.datasource.alternate-username-allowedsi les noms d’utilisateur alternatifs sont autorisés.
###spring.datasource.auto-commitSpécifie si les mises à jour sont automatiquement engagées.
###spring.datasource.catalogue spécifie le catalogue par défaut.
###spring.datasource.commit-on-return détermine s’il faut valider toutes les transactions en attente lorsque la connexion est renvoyée
###spring.datasource.connection-init-sql spécifie que la connexion est créée et ajoutée au SQL exécuté avant le pool de connexions.
###spring.datasource.connection-init-sqls Lorsque vous utilisez le pool de connexion DBCP, spécifiez le sql à exécuter lors de l’initialisation
###spring.datasource.connexion-propriétés. [clé]Spécifie les attributs à configurer lors de l’utilisation du pool de connexion DBCP
###spring.datasource.connection-test-query spécifie l’instruction SQL qui vérifie la légitimité de l’exécution de la connexion
###spring.datasource.connection-timeout Spécifie le temps d’attente de la connexion, en millisecondes.
###spring.datasource.continue-on-error-Lors de l’initialisation de la base de données, rencontrant une erreur : si elle doit continuer ou non, le défaut est faux
###spring.datasource.data spécifie le script Data (DML)
###spring.datasource.data-source-class-name Spécifie le nom entièrement qualifié de la source de données.
###spring.datasource.data-source-jndi spécifie l’adresse du jndi
###spring.datasource.data-source-properties. Lors de l’utilisation du pool de connexions Hikari, spécifiez les attributs à définir
###spring.datasource.db-properties utilise le pool de connexions Tomcat, spécifiant les propriétés à définir
###spring.datasource.default-auto-commit est automatiquement validé.
###spring.datasource.default-catalogue spécifie le catalogue qui se connecte au code par défaut.
###spring.datasource.default-read-onlyIf mettre la connexion par défaut en lecture seule.
###spring.datasource.default-transaction-isolationSpécifie le niveau d’isolation par défaut pour les transactions connectées.
###spring.datasource.driver-class-name spécifie le nom de classe du pilote, qui est automatiquement détecté par défaut à partir de l’URL jdbC.
###spring.datasource.fair-queue Ou non utiliser des connexions FIFO ou non.
###spring.datasource.health-check-properties. [clé] Attribut transmis lors de l’utilisation du pool de connexion Hikari lors du contrôle du battement cardiaque
###spring.datasource.idle-timeout Spécifie la durée pendant laquelle la connexion n’est pas utilisée, qui est réglée par défaut en mode inactif
###spring.datasource.ignore-exception-on-preloadOu si l’exception est ignorée lors de l’initialisation du pool de connexion.
###spring.datasource.init-sqlsql qui s’exécute lors de la création d’une connexion
###spring.datasource.initial-size spécifie le nombre de connexions initialement établies au démarrage du pool de connexions
###spring.datasource.initialisation-fail-fastLors de la création d’un pool de connexions, il n’est pas possible de créer un nombre minimum de connexions spécifié pour lancer une exception
###spring.datasource.initialize Spécifiez s’il faut initialiser la source de données avec data.sql, par défaut : true
###spring.datasource.isolate-internal-queries précise si les requêtes internes doivent être mises en quarantaine, en passant par défaut à false
###spring.datasource.jdbc-interceptors Lorsque vous utilisez le pool de connexions Tomcat, spécifiez l’intercepteur jdbc et la séparation en point-virgule
###spring.datasource.jdbc-url spécifie l’URL JDBC.
###spring.datasource.jmx-enabled est activé par défaut : false
###spring.datasource.jndi-nameSpécifie le nom du jndi.
###spring.datasource.leak-detection-threshold Combien de millisecondes détectez-vous une fuite de connexion lorsque vous utilisez le pool de connexion Hikari ?
###spring.datasource.log-abandonné utilise le pool de connexions DBCP pour suivre les instructions ou connexions abandonnées, le défaut est faux
###spring.datasource.log-erreurs-validationLors de l’utilisation du pool de connexion Tomcat, il faut s’imprimer une erreur de validation.
###spring.datasource.login-timeout Spécifie le temps d’extinction pour la connexion à la base de données.
###spring.datasource.max-âge spécifie l’âge maximal des connexions dans le pool de connexions
###spring.datasource.max-durée de vie spécifie la durée de vie maximale des connexions dans le pool de connexions, en millisecondes.
###spring.datasource.max-open-prepared-statements spécifie le nombre maximal d’énoncés préparés qui sont ouverts.
###spring.datasource.max-wait spécifie le temps d’attente maximal pour que le pool de connexion attende le retour de la connexion, en millisecondes.
###spring.datasource.maximum-pool-sizeSpécifie le nombre maximal de connexions dans le pool de connexions, y compris les connexions actives et inactives.
###spring.datasource.min-evictable-idle-time-millisSpécifie une connexion gratuite pendant la durée minimale où elle peut être inactive avant d’être libérée.
###spring.datasource.min-idle spécifie la valeur minimale à maintenir (pour les pools de connexion DBCP et Tomcat)
###spring.datasource.minimum-idle spécifie le nombre minimum de connexions libres maintenues par une connexion, et lors de l’utilisation de HikariCP.
###spring.datasource.name Spécifiez le nom de la source de données.
###spring.datasource.num-tests-per-eviction-run spécifie le nombre d’objets lors de l’exécution de chaque thread d’évitor d’objets inactif
###spring.datasource.password Spécifie le mot de passe de la base de données.
###spring.datasource.platform spécifie la Plateforme (schema-${platform}.sql à utiliser pour le schéma, qui par défaut est : all
###spring.datasource.pool-nameSpécifie le nom du pool de connexion.
###spring.datasource.pool-prepared-statementsPrécise s’il faut regrouper des instructions.
###spring.datasource.propage-interrupt-stateOu bien propager l’état d’interruption si le thread est interrompu en attendant la connexion.
###spring.datasource.read-onlyLors de l’utilisation du pool de connexion Hikari, est-ce qu’il faut marquer la source de données comme en lecture seule
###spring.datasource.register-mbeans spécifie si le pool de connexion Hikari enregistre des MBeans JMX.
###spring.datasource.remove-abandoned spécifie s’il faut supprimer une connexion immédiatement après le délai d’expiration abandonné.
###spring.datasource.remove-abandoned-timeout Spécifie le moment auquel la connexion doit être abandonnée.
###spring.datasource.rollback-on-returnS’il faut revenir en arrière une transaction en attente lors du retour d’une connexion.
###spring.datasource.schema spécifie le script Schema (DDL).
###spring.datasource.separator spécifie le séparateur d’instruction pour initialiser le script, par défaut : ;
###spring.datasource.sql-script-encodage spécifie l’encodage des scripts SQL.
###spring.datasource.suspect-timeoutSpécifie le délai avant d’imprimer la connexion abandonnée.
###spring.datasource.test-on-borrowLorsque vous empruntez une connexion à un pool de connexions, savez-vous tester la connexion.
###spring.datasource.test-on-connect est créé, s’il faut tester la connexion
###spring.datasource.test-on-returnOu la connexion est retournée dans le pool de connexions.
###spring.datasource.test-while-idleOu devrait-il effectuer un test de connexion lorsque la connexion est inactive.
###spring.datasource.time-entre-expulsion-runs-millis Spécifie l’intervalle de temps d’opération entre les vérifications de connexion inactive, le nettoyage des connexions abandonnées et la taille du pool de connexion inactif
###spring.datasource.transaction-isolation spécifie le niveau d’isolation des transactions, qui est spécifié lors de l’utilisation du pool de connexion Hikari
###spring.datasource.url spécifie l’URL JDBC.
###spring.datasource.use-jetable-connexion-façade enveloppe la connexion pour empêcher son utilisation après sa fermeture.
###spring.datasource.use-égale à savoir s’il faut utiliser String.equals() pour remplacer ==.
###spring.datasource.use-lock est verrouillé sur l’opération de connexion
###spring.datasource.usernameSpécifie le nom de la base de données.
###spring.datasource.validation-interval spécifie combien de ms effectuer une vérification de connexion.
###spring.datasource.validation-query spécifie l’instruction SQL de requête pour la validation de la connexion lors de l’obtention d’une connexion.
###spring.datasource.validation-query-timeout Spécifie le délai d’expiration pour la requête de validation de connexion.
###spring.datasource.validation-timeout Définit le temps d’expiration pour la validation de la connexion, qui est spécifié lors de l’utilisation du pool de connexion Hikari
###spring.datasource.validator-class-name Le qualificateur complet du validateur utilisé pour tester la requête.
###spring.datasource.xa.data-source-class-name Spécifie le qualificateur complet de la source de données.
###spring.datasource.xa.properties spécifie les propriétés transmises à la source de données 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-actif=20
spring.datasource.max-inactivité=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring Informations de configuration JPA
###spring.jpa.database spécifie la base de données cible.
###spring.jps.show-sq : Afficher des instructions SQL ou non
###spring.jpa.hibernate.ddl-auto spécifie le mode DDL (aucun, valider, update, créer, créer-drop). Lorsqu’on utilise une base de données embarquée, le défaut est créer-déposer, sinon il n’y a aucune.
###spring.jpa.hibernate.naming-strategySpécifie la politique de nommage.
###其他:
###spring.jpa.database-platformSpécifie le type de base de données cible.
###spring.jpa.generate-ddl : si on doit initialiser le schéma au démarrage, par défaut sur false
###spring.jpa.hibernate.ddl-auto spécifie le mode DDL (aucun, valider, update, créer, créer-drop). Lorsqu’on utilise une base de données embarquée, le défaut est créer-déposer, sinon il n’y a aucune.
###spring.jpa.hibernate.naming-strategySpécifie la politique de nommage.
###spring.jpa.open-in-view enregistre OpenEntityManagerInViewInterceptor et lie JPA EntityManager au fil de requête, le défaut est vrai
###spring.jpa.properties ajoute des attributs supplémentaires au fournisseur JPA.
###spring.jpa.show-sql La désactivation du journal SQL est par défaut réglée sur faux
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = mise à jour
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.BetteredNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

L’ensemble de la structure du paquet



Configuration des sources de données :




Classe d’entité :



Interface d’exploitation de la base de données :

L’interface d’exploitation de la base de données hérite de la classe générique JpaRepository, et lorsqu’elle l’hérite, elle acquiert le pouvoir divin qu’elle confère aux développeurs :



Nous pouvons appeler directement ces méthodes pour effectuer des opérations de base de données, et nous pouvons également personnaliser le HQL pour réaliser d’autres opérations adaptées à notre personnalité, telles que :

Dans ce code, par @Query commentaire,A terminé la rédaction de HQLoù « :name » est cohérent avec le paramètre de l’annotation @Param ci-dessous.

Note : Le nom de la table dans HQL doit être le nom de classe de la carte ORM, et HQL présente certaines différences avec les instructions SQL traditionnelles, comme la signification de « * » différente, etc.

Si vous n’êtes pas habitué à utiliser HQL, vous pouvez aussi utiliser des instructions SQL :



La méthode ci-dessus reste efficace lorsqu’elle est effectuée.nativeQuery to true signifie utiliser le langage SQL

Classe de contrôleurs :

Démarrez le projet

Hibernate associera automatiquement les classes d’entités à la base de données pour créer des tables de base de données pertinentes pour nous, et il correspondra automatiquement les tables de base de données en fonction d’annotations telles que @Table, @Column, @Id, @GeneratedValue (strategy = GenerationType.AUTO), etc. Évitez beaucoup de travail de tabulation.


(Avant de commencer le projet, vous devez d’abord construire la base de données, et la table sera créée automatiquement)



hibernate_sequence table est une stratégie de génération d’id @GeneratedValue annotée, GenerationType.AUTO représente la génération automatique, à condition que l’attribut id soit un attribut int ou long type, si c’est un id de type String, alors ajouter cette annotation par-dessus l’id signalera immédiatement une erreur. Ainsi, si c’est pour l’id du type String, vous n’avez pas besoin d’annoter l’id avec @GeneratedValue (stratégie = GénérationType.AUTO).

Demande un test

Complétez la demande de données et la sauvegarde des données via get et post respectivement.


invoquerLa connexion hyperlientérée est visible.L’interface POST demande d’ajouter des données, comme montré dans la figure suivante :



La requête de la base de données est la suivante :



Obtenez les données via l’interface suivante :

La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.



Note : Comme demandé par l’interface ci-dessus, Java est très sensible à la sensibilité à la majuscule, que ce soit l’adresse URL ou les paramètres, il doit être sensible à la majuscule ! Si une lettre est en majuscules ou minuscules, la requête n’atteint pas l’interface ou le paramètre sera vide !

Le Druide surveille les situations suivantes :






Enfin, joignez le code source :

Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaîtRépondre


(Fin)





Précédent:Échec de configurer une DataSource
Prochain:Thé de l’après-midi Jieyou | Mercredi 20 février 2019
Publié sur 21/02/2019 02:19:13 |
Regardez ce qu’est apprendre à apprendre.
Publié sur 05/07/2019 17:27:02 |
Apprends à apprendre...
Publié sur 22/07/2019 14:15:41 |
Regardez ce qu’est apprendre à apprendre.
Publié sur 21/11/2019 21:08:12 |
【Combat Pratique】Spring Boot Hibernate Projet MySQL - Tutoriel de construction de projet MySQL
Publié sur 30/03/2020 13:52:54 |
Merci beaucoup
Publié sur 28/06/2020 15:13:11 |
Jetez un œil à l’apprentissage du code chez les gros
Publié sur 18/11/2020 23:57:19 |
Apprendre à apprendre
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com