[JAVA] Le premier "JDBC" OR

JDBC Je vais essayer de résumer à propos de "JDBC" qui est la gamme java SE8 GOLD!

"JDBC" est un mécanisme qui vous permet d'accéder à diverses bases de données à partir de java, ce que l'on appelle l'interface.

Le «polymorphisme» que j'ai appris quand j'étais dans l'argent est également appliqué à la base de données.

En d'autres termes, je ne peux penser à rien d'autre qui puisse être fait avec ça, comme Oracle, MySQL, PostgreSQL ... (ignorance) En préparant JDBC, vous pourrez vous connecter à ces bases de données avec une seule ligne __.

Comment utiliser

Voici ce dont vous avez besoin en premier. __ · Pilote JDBC __ c'est tout. Ensuite, ici, nous le ferons avec Eclipse, MySQL.

Pilote JDBC

Vous pouvez le trouver en recherchant "pilote jdbc [nom de la base de données que vous souhaitez utiliser]". Téléchargez celui en fonction de la base de données que vous utilisez.

Lorsque vous ouvrez le fichier téléchargé, vous trouverez le fichier JAR. (Pour mysql, il s'agit de "mysql-connector-java-〇〇.jar".) Il s'agit du corps du pilote JDBC.

S'il est laissé en place, java ne saura pas où il se trouve. Alors, dans divers messages, il se plaint: "Où est-ce?" Des paramètres sont également requis pour s'exécuter dans Eclipse.

Cliquez avec le bouton droit sur le projet → [Propriétés] → [Chemin de construction Java] → onglet [Bibliothèque] → [Ajouter un JAR externe]

Dans cette procédure, spécifiez le fichier JAR que vous avez téléchargé précédemment.

No Suitable Driver found for ... Vous pouvez obtenir une erreur comme celle-ci. C'est l'état ci-dessus, "Où est-ce?"

C'est un peu hors sujet, mais les paramètres ci-dessus ne suffisent pas lors de l'exécution dans un servlet. Il est nécessaire de prêter attention à l'emplacement du fichier JAR plutôt que pas assez. [WEB-INF / lib] Déployez le fichier JAR directement sous celui-ci.

Comment écrire

Créez des projets, des packages et des classes dans Eclipse et écrivez-les.

String jdbc = "jdbc:mysql://localhost/test_db?serverTimezone=JST";
 // jdbc: (nom de la base de données): // localhost / (nom du schéma)? (informations sur le fuseau horaire)

Tout d'abord, c'est ça. Cela identifiera l'emplacement de jdbc lors de l'utilisation de la classe Connection décrite plus tard.

try(Connection con = DriverManager.getConnection(jdbc,"root","pass");
    Statement statement = con.createStatement();
    ResultSet resultSet = statement.executeQuery(sql)){

Il se trouve au milieu de l'instruction try-with-resouece. Puisque jdbc lève SQLException, il est inclus dans try.

Vous vous connectez à l'aide de l'objet Connection. L'argument de getConnection () est

    1. Informations sur le pilote JDBC
  1. Nom d'utilisateur de la base de données
    1. Mot de passe (défini lors de la création de la base de données) Il est devenu.

Utilisez cette connexion pour préparer l'objet Statement à recevoir des instructions SQL.

L'instruction SQL est finalement exécutée sur la troisième ligne. ResultSet est littéralement un "jeu de résultats". ʻExcuteQuery () `peut recevoir le résultat d'une instruction SELECT. Il viendra en une seule fois, alors supprimons-le plus tard.

Et la connexion ouverte doit être fermée. Normalement, il est fermé avec close () dans chaque classe, mais il n'y a pas de problème s'il est libéré avec l'instruction try-with-resouce.

while(resultSet.next()){
    System.out.println(resultSet.getString(2));
}

En fonction de l'instruction SQL que vous avez lancée, ceci est un exemple d'instruction traitant d'un jeu de résultats.

Tout d'abord, next () sur la première ligne est une méthode de la classe ResultSet. Cela vous amènera à la "ligne suivante" de l'ensemble de résultats que vous avez reçu. Si c'est la première fois, il regardera la "première ligne". À partir de la deuxième fois, il procédera ligne par ligne. C'est pratique. Il fonctionne de manière similaire à hasNext () d'Iterator. Ici, il traitera tant qu'il y aura une ligne.

Au fait, j'ai décidé de lancer le SQL SELECT * FROM human ici. Supposons que la table humaine ait plusieurs colonnes, mais que la ___ seconde ___ a une colonne appelée nom. Cette colonne contient des données de chaîne, vous pouvez donc la recevoir sous la forme String. Par conséquent, ici, c'est ___ getString (2) ___. Bien entendu, si le type de données et la méthode que vous recevez ne correspondent pas, vous ne pourrez pas recevoir de données. Les méthodes sont préparées en fonction de chaque type de données, utilisez-les donc correctement. Vous pouvez également le trier sur java après l'avoir reçu avec getObject (). De plus, il s'agit d'un entier de l'argument de getXX (), qui est l '«index de la colonne du jeu de résultats» en complément. Comme je n'ai pas spécifié la colonne cette fois, j'ai choisi getString (2) car c'est la deuxième colonne. Cependant, si le SQL est SELECT name FROM human, ce nombre sera" 1 "car il n'y a qu'un nom. (Ne comptez pas à partir de 0. 1 commence. Soyez prudent.)

Recommended Posts

Le premier "JDBC" OR
La première «fonction» GOLD
Premier Kaggle (kaggle ①)
Kaguru pour la première fois
Mettre en majuscule uniquement la première lettre
First Python 3 ~ Le début de la répétition ~
Obtenez le premier élément du jeu de requêtes
Voir python pour la première fois
Démarrez Django pour la première fois
La première étape de Python Matplotlib
Premier message de Qiita (la raison du départ)
J'ai essayé tensorflow pour la première fois
Jouez en continu le MV du premier Python Skusta
Déterminez si la pièce d'or est authentique
MongoDB avec Python pour la première fois
Essayons Linux pour la première fois