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.
L'environnement de développement cette fois est le suivant.
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.
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.
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.
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
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.
[Database] SQLite3 / JDBC Summary