[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.

Cette fois, j'étudiais l'accès aux bases de données depuis Java en cours de développement logiciel, et j'ai réussi à lire la base de données, j'ai donc écrit un article. Comme il s'agit presque de ma première expérience d'accès à une base de données à l'aide de JDBC, j'aimerais le faire étape par étape en tant que revue de SQLite3.

Pour savoir comment utiliser SQLite3, veuillez vous référer à l'article Qiita: résumé relatif à la commande d'opération SQLite3.

environnement

L'environnement de développement cette fois est le suivant.


Créer une base de données

Créez une base de données à l'avance pour lire les éléments d'une base de données existante.

Créer une base de données


sqlite3 test.db

Définir table1


CREATE TABLE table1(id INTEGER PRIMARY KEY, name TEXT NOT NULL);

À ce stade, un fichier de base de données est créé dans le répertoire. testJDBC_Qiita.png

J'ai mis des données dans l'instruction INSERT, voyons-les donc dans l'instruction SELECT.

SELECT * FROM table1;
id          name      
----------  ----------
1           satou     
2           suzuki    
3           tanaka    
4           katou     
5           takahashi 

J'ai pu confirmer la base de données.


Téléchargement JDBC

Pour accéder à SQLite3 depuis Java, vous avez besoin du pilote JDBC. Téléchargez JDBC depuis le référentiel JDBC (https://bitbucket.org/xerial/sqlite-jdbc/downloads/). Je pense que la version peut être n'importe laquelle, mais cette fois je téléchargerai le dernier sqlite-jdbc-3.30.1.jar au moment de la rédaction.

Une fois que vous avez téléchargé le JDBC, copiez-le dans le répertoire qui contient la base de données que vous venez de créer.


Création de programmation Java

Cette fois, j'ai créé un fichier java en apportant les modifications appropriées en fonction du code du site auquel j'ai fait référence.

TestDAtabaseDriver.java


import java.sql.*;

public class TestDatabaseDriver {
    public static void main(String[] args) {
 
        Connection connection = null;
        Statement statement = null;
 
        try {
            Class.forName("org.sqlite.JDBC");

            //Spécifiez le PATH de la base de données. Il semble que vous puissiez choisir un chemin relatif ou un chemin absolu
            connection = DriverManager.getConnection("jdbc:sqlite:test.db");
            statement = connection.createStatement();
            String sql = "select * from table1";
            ResultSet rs = statement.executeQuery(sql);
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
        } catch (ClassNotFoundException e) {
          e.printStackTrace();
        } catch (SQLException e) {
          e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Compiler et exécuter


javac *.java && java -classpath .:sqlite-jdbc-3.30.1.jar TestDatabaseDriver

Résultat d'exécution


1
2
3
4
5

D'après ce résultat, il semble que la partie à lire soit déterminée par la partie System.out.println (rs.getString (1)); de TestDAtabaseDriver.java, donc apportons quelques modifications.

Changer avant


System.out.println(rs.getString(1));

Après le changement


System.out.println(rs.getString(1) + "|" + rs.getString(2));

Je vais essayer.

Compiler et exécuter


javac *.java && java -classpath .:sqlite-jdbc-3.30.1.jar TestDatabaseDriver

Résultat d'exécution


1|satou
2|suzuki
3|tanaka
4|katou
5|takahashi

Résumé

J'ai pu lire la base de données en toute sécurité. Cette fois, j'ai essayé JDBC pour la première fois, donc la majeure partie a été copiée et collée, mais j'aimerais élargir la gamme sur cette base et la rendre hautement réutilisable.


Cette page de tableau d'article

[Database] SQLite3 / JDBC Summary


Site de référence

Recommended Posts

[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
[JDBC] J'ai essayé de faire de l'accès à la base de données SQLite3 depuis Java une méthode pour chaque instruction SQL.
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
Je veux écrire rapidement de java vers sqlite
[Java] Je souhaite calculer la différence par rapport à la date
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
[JDBC ③] J'ai essayé d'entrer à partir de la méthode principale en utilisant des espaces réservés et des arguments.
J'ai essayé de résumer les bases de kotlin et java
J'ai essayé d'interagir avec Java
J'ai essayé d'expliquer la méthode
J'ai essayé le framework Java "Quarkus"
J'ai essayé de résumer l'apprentissage Java (1)
La route de JavaScript à Java
J'ai essayé de résumer Java 8 maintenant
J'ai essayé de traduire le message d'erreur lors de l'exécution d'Eclipse (Java)
J'ai essayé de résumer les méthodes de Java String et StringBuilder
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai essayé d'exécuter le formulaire FaaS compatible Java "Fn Project"
J'ai essayé de résoudre le problème de la campagne paiza "Challenge from Phantom Thief 813"
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
J'ai essayé de résumer les méthodes utilisées
J'ai essayé de résumer les expressions Java lambda
J'ai essayé le nouveau yuan à Java
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
Je suis allé au Java Women's Club # 1
[Introduction à Java] J'ai essayé de résumer les connaissances que j'estime essentielles
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
J'ai essayé de traduire la grammaire de R et Java [Mis à jour de temps en temps]
Exécuter R à partir de Java Je veux exécuter rJava
J'ai essayé de faire une authentification de base avec Java
J'ai essayé d'organiser la session en Rails
java j'ai essayé de casser un simple bloc
J'ai essayé de frapper une méthode Java d'ABCL
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé de configurer tomcat pour exécuter le servlet.
[Java / PostgreSQL] Connectez l'application WEB à la base de données
J'ai essayé de créer une compétence Alexa avec Java
J'ai essayé de casser le bloc avec java (1)
Essayez de vous connecter à la base de données autonome avec JDK6 (Java) + pilote JDBC OCI (type 2).
Essayez d'accéder au système sur site à partir de SAP Cloud Platform --JAVA App Edition
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
Changements de Java 8 à Java 11
Somme de Java_1 à 100
Accédez à API.AI depuis Java
De Java à Ruby !!
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java
Tokoro j'ai réécrit dans la migration de Wicket 7 à 8
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
Comment écrire Scala du point de vue de Java
[Java 11] J'ai essayé d'exécuter Java sans compiler avec javac
[Java] J'ai essayé de résoudre le problème de rang B de Paiza
J'ai essayé de faire fonctionner SQS en utilisant AWS Java SDK