ProcessingとSQLiteを連携する
Processing3上からSQLiteを使ってデータベース操作する方法のまとめ。
sqlite-jdbcをスケッチフォルダ内に保存する。
まずはProcessingを開いて、ファイルを保存する。するとスケッチのフォルダが作成される。(今回は、DB_test_1.pdeとして保存してみる)
次に、ProcessingからSQLiteを操作するのに必要なJDBCをスケッチフォルダに保存する。
JDBCはSQL言語ごとに様々なものがあるが、SQLite用JDBCは以下のサイトから入手できる
https://github.com/xerial/sqlite-jdbc
入手したJDBCはスケッチフォルダ内に新たにcodeフォルダを作成し、その中に保存しよう。
これで事前準備完了。
JavaのSQLパッケージを利用したコードを記述する
ProcessingはJava環境なので、Javaのパッケージを利用することができる。JavaからSQLを利用する際には、java.sqlパッケージを利用しよう。
このjava.sqlパッケージ内には、DBMS(DataBase Management System)への接続・切断やSQL文を送信する際に利用できるクラスが含まれている。
今回は、DBMSへの接続準備を行うためのDriverManagerクラス、DBMSへの接続を行うConnectionクラス、SQL文を送信するためのStatementクラスを利用する。
最終的なコードは以下の通り。
import java.sql.*; // パッケージのインポート
Connection connection = null; // 接続のためのクラスを宣言
void setup(){
// DBファイルをスケッチフォルダに生成するため、絶対パスを指定。もしtest.dbが存在しない場合はスケッチ実行時に、test.dbが新たに作成される
String dbName = sketchPath("test.db");
// OPEN DB
try{
connection = DriverManager.getConnection("jdbc:sqlite:" + dbName);
Statement statement = connection.createStatement();
statement.setQueryTimeout(30); // set timeout to 30 sec
statement.executeUpdate("drop table if exists person");
// 新たにTableを作成するためのSQL文を送信
statement.executeUpdate("create table person(id integer, name)");
// 作成したTableにデータをInsertしてみる
statement.executeUpdate("insert into person values(1, 'leo')");
statement.executeUpdate("insert into person values(2, 'yui')");
// Tableの中身をすべてSelectし、Resultsetクラスに読み込む
ResultSet rs = statement.executeQuery("select * from person");
while(rs.next()){ // ResultSetに読み込まれたデータを表示する
// read the result set
String format = "name: %4s, id: %4d";
println(String.format(format, rs.getString("name"), rs.getInt("id")));
//print("name: " + rs.getString("name"));
//println(", id: " + rs.getInt("id"));
}
} catch( SQLException e ){
println(e.getMessage());
} finally{
dbClose();
}
}
// データベース終了時の例外処理をまとめただけの関数
void dbClose(){
try{
if(connection != null){
connection.close();
}
} catch (SQLException e){
e.printStackTrace();
}
}
上記コードを実行すると、test_dbファイルが新規作成され、Processingのコンソールに挿入したデータが表示されます。
以上が簡単なデータベースの利用方法の説明となります。
Author And Source
この問題について(ProcessingとSQLiteを連携する), 我々は、より多くの情報をここで見つけました https://qiita.com/hoshi_shiitake/items/48d34491fb494ae1ca71著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .