


De combien de fa?ons Java doit-il se connecter à MySQL?? Quelles sont les différences ?
Nov 23, 2020 pm 03:33 PMIl existe cinq fa?ons de connecter Java à MySQL, à savoir?:
(Partage de vidéos d'apprentissage?: Vidéo d'enseignement Java)
La première fa?on : encapsuler le nom d'utilisateur et le mot de passe dans la classe Propriétés
Tout d'abord, il n'y a aucun doute sur l'importation du package de connexion à la base de données. Créez un pilote de pilote jdbc. Enregistrez l'URL de la base de données (en prenant MySQL comme exemple) dans l'URL de la cha?ne créée. Si la version de MySQL est inférieure à 8.0, le formulaire de sauvegarde de l'URL doit être?:
String?url?=?"jdbc:mysql://localhost:3306/test"
Si la version de MySQL est 8.0 ou supérieure, le formulaire de sauvegarde de l'URL est?:
String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
La version de MySQL utilisée ici est 8.0. Le fuseau horaire est donc ajouté à la fin, sinon la valeur par défaut est le fuseau horaire UTC, qui est 8 heures plus tard que l'heure de Pékin.
Encapsulez ensuite l'utilisateur et le mot de passe correspondant à la base de données mysql dans la classe Properties, et enfin créez la connexion à la base de données via la classe Connection. Le code source est le suivant :
Driver?driver?=?new?com.mysql.jdbc.Driver(); ????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????/* ????????將用戶名和密碼封裝在Properties中 ?????????*/ ????????Properties?info?=?new?Properties(); ????????info.setProperty("user","root"); ????????info.setProperty("password","ab20010322"); ????????Connection?conn?=?driver.connect(url,info); ????????System.out.println(conn);
. La deuxième fa?on : dans Basé sur la première méthode, utilisez la réflexion pour réaliser le pilote
Changez la première méthode :
Driver?driver?=?new?com.mysql.jdbc.Driver();
en :
Class?clazz?=?Class.forName("com.mysql.jdbc.Driver"); Driver?driver?=?(Driver)?clazz.newInstance();par rapport à la première méthode, deux méthodes ont les mêmes fonctions, mais la seconde méthode utilise la réflexion pour implémenter le pilote, ce qui évite l'utilisation d'interfaces tierces et rend le code plus portable. Le code source de la deuxième méthode est le suivant :
?/* ????????使用反射獲取Driver類實(shí)例 ????????與Driver?driver?=?new?com.mysql.jdbc.Driver()功能相同,只是不適用第三方接口,使得程序具有更好的可移植性 ?????????*/ ????????Class?clazz?=?Class.forName("com.mysql.jdbc.Driver"); ????????Driver?driver?=?(Driver)?clazz.newInstance(); ????????/* ????????提供要連接的數(shù)據(jù)庫 ?????????*/ ????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????/* ????????提供需要的用戶名和密碼 ?????????*/ ????????Properties?info?=?new?Properties(); ????????info.setProperty("user","root"); ????????info.setProperty("password","ab20010322"); ????????Connection?connection?=?driver.connect(url,info); ????????System.out.println(connection);La troisième méthode : utiliser DriveManager(classs) au lieu de Drive
????????Class?clazz?=?Class.forName("com.mysql.jdbc.Driver"); ????????Driver?driver?=?(Driver)?clazz.newInstance(); ????????/* ????????提供連接信息 ?????????*/ ????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????String?user?=?"root"; ????????String?password?=?"ab20010322"; ????????/* ????????注冊驅(qū)動(dòng) ?????????*/ ????????DriverManager.registerDriver(driver); ????????/* ????????獲取連接 ?????????*/ ????????System.out.println(DriverManager.getConnection(url,user,password));La quatrième méthode?: masquer la méthode de chargement du pilote Changez le
Driver?driver?=?(Driver)?clazz.newInstance(); DriverManager.registerDriver(driver);dans la troisième méthode en
Class.forName("com.mysql.jdbc.Driver");De cette fa?on, vous peut masquer la situation de chargement du pilote. Masquer le code source comme suit?:
????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????String?user?=?"root"; ????????String?password?=?"ab20010322"; ????????/* ????????加載Driver ?????????*/ ????????Class.forName("com.mysql.jdbc.Driver");//????????Driver?driver?=?(Driver)?clazz.newInstance();//????????DriverManager.registerDriver(driver); ????????/* ????????獲取連接 ?????????*/ ????????System.out.println(DriverManager.getConnection(url,user,password));Méthode 5?: Mettre les informations de base requises par la base de données dans le fichier de configuration jdbc.properties
Le fichier de configuration jdbc.properties est le suivant?:
user=root password=123456url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai Driver=com.mysql.cj.jdbc.DriverRemarque?:
????????InputStream?inputStream?=?ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); ????????Properties?info?=?new?Properties(); ????????info.load(inputStream); ???????? ????????String?user?=??info.getProperty("user"); ????????String?password?=?info.getProperty("password"); ????????String?url?=?info.getProperty("url"); ????????String?driver?=?info.getProperty("Driver"); ????????/* ????????加載驅(qū)動(dòng) ?????????*/ ????????Class.forName(driver); ????????/* ????????獲取連接 ?????????*/ ????????Connection?conn?=?DriverManager.getConnection(url,user,password); ????????System.out.println(conn);Recommandations associées?:
Tutoriel d'introduction à Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis

Tout d'abord, CheckifThefnKeySettingisInterferingyTryingBothThevolumeKeyAlonEndfn volumeKey, thentogglefnlockwithfn espifavailable.2.enterbios / uefidUringbootAnableFunctionKeysordiSablehotKeyModetoenSureVolumeSarereCognined.3.updateorreinstallAdriodriving

Utilisez la méthode .equals () pour comparer le contenu de la cha?ne, car == ne compare les références d'objet plut?t que le contenu; 1. Utilisez .equals () pour comparer également les valeurs de cha?ne; 2. Utiliser .EqualSignoreCase () pour comparer l'ignorance du cas; 3. Utilisez .Compareto () pour comparer les cha?nes dans l'ordre du dictionnaire, renvoyant 0, nombres négatifs ou positifs; 4. Utiliser .CompareToIgnoreCase () pour comparer le cas Ignorer; 5. Utilisez des objets.equals () ou de la méthode d'appel s?r pour traiter les cha?nes nulles pour éviter les exceptions de pointeur nul. En bref, vous devez éviter d'utiliser == pour les comparaisons de contenu de cha?ne, sauf s'il est explicitement nécessaire de vérifier si l'objet est en phase.

Calculé a un cache et les accès multiples ne sont pas recalculés lorsque la dépendance reste inchangée, tandis que les méthodes sont exécutées à chaque fois qu'elles sont appelées; 2.COMPUT est adapté aux calculs basés sur des données réactives. Les méthodes conviennent aux scénarios où les paramètres sont requis ou les appels fréquents, mais le résultat ne dépend pas de données réactives; 3.Coupation prend en charge les getters et les setters, ce qui peut réaliser la synchronisation bidirectionnelle des données, mais les méthodes ne sont pas prises en charge; 4. Résumé: Utilisez d'abord calculé pour améliorer les performances et utilisez des méthodes lors de la réussite des paramètres, de l'exécution d'opérations ou d'éviter le cache, en suivant le principe de "Si vous pouvez utiliser calculé, vous n'utilisez pas de méthodes".

Le module de journalisation de Python peut écrire des journaux dans les fichiers via FileHandler. Tout d'abord, appelez le processeur et format de fichier de configuration BasicConfig, tels que la définition du niveau sur les informations, en utilisant FileHandler pour écrire app.log; Deuxièmement, ajoutez StreamHandler pour atteindre la sortie à la console en même temps; Les scénarios avancés peuvent utiliser TimeRotingFileHandler pour diviser les journaux par le temps, par exemple, définir quand = 'Midnight' pour générer de nouveaux fichiers chaque jour et conserver 7 jours de sauvegarde, et assurez-vous que le répertoire de journal existe; Il est recommandé d'utiliser GetLogger (__ Name__) pour créer des journalistes nommés et produire

L'utilisation de String.join () (Java8) est la méthode recommandée la plus simple pour connecter les tableaux de cha?ne, spécifiez simplement le séparateur directement; 2. Pour les anciennes versions de Java ou lorsque plus de contr?le est nécessaire, vous pouvez utiliser StringBuilder pour traverser et épisser manuellement; 3. StringJoiner convient aux scénarios qui nécessitent des formats plus flexibles tels que les préfixes et les suffixes; 4. Utilisation de Arrays.Stream () combinée avec des collectionneurs.joining () convient au filtrage ou à la conversion du tableau avant de rejoindre; Pour résumer, si Java8 et supérieur est utilisé, la méthode String.join () doit être préférée dans la plupart des cas, ce qui est concis et facile à lire, mais pour une logique complexe, elle est recommandée.

Lorsque vous traitez avec de grandes tables, les performances MySQL et la maintenabilité sont confrontées à des défis, et il est nécessaire de commencer à partir de la conception structurelle, de l'optimisation des index, de la stratégie de sous-table de tableau, etc. 1. Concevoir raisonnablement les clés et les index primaires: il est recommandé d'utiliser des entiers auto-incrémentés comme clés principales pour réduire les scintillement de pages; Utiliser les index de superposition pour améliorer l'efficacité de la requête; Analyser régulièrement les journaux de requête lents et supprimer les index non valides. 2. Utilisation rationnelle des tables de partition: partition en fonction de la plage de temps et d'autres stratégies pour améliorer l'efficacité de la requête et de la maintenance, mais l'attention devrait être accordée aux problèmes de partitionnement et de coupe. 3. Envisagez de lire et d'écrire la séparation et la séparation des bibliothèques: la séparation de lecture et d'écriture atténue la pression sur la bibliothèque principale. La séparation de la bibliothèque et la séparation des tableaux conviennent aux scénarios avec une grande quantité de données. Il est recommandé d'utiliser des middleware et d'évaluer les problèmes de requête des transactions et des magasins croisés. La planification précoce et l'optimisation continue sont la clé.
