Processing + MySQL(DB)

ProcessingからのSQLへのクエリ送信などによる制御。
SQLibraryというライブラリを利用してサーバへの接続を確立します。

これにより、Processingでデータベース管理をする事が出来るようになり、ウェブとの連携や長期的に継続するアプリケーションを構築することが可能になります。

サンプルコード
Processing 内で DB というファイル名でクラス化を行っている。

[java]
//import de.bezier.mysql.*;
import de.bezier.data.sql.*;
import java.sql.*;
import java.util.Date;

public class DB{
//property
PApplet parent;
MySQL msql;

String table;

int ClipID;
int hue, saturation, brightness;
String Date;

//String Title;

//constructor
DB(PApplet _p){
parent = _p;
String user = “root”;
String pass = “root”;
String database = “inClip”;
table = “inClip_ORIGAMI_081201b”;//
//RGBTable = “inClip_Color_081201b”;

//msql = new MySQL( “localhost:8889″, database, user, pass, _p );
msql = new MySQL( _p, “localhost:8889″, database, user, pass );

if(msql.connect()){
msql.execute( “CREATE TABLE IF NOT EXISTS ” + table + ” (“+
“ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,”+
“ClipID INT unsigned NOT NULL,”+
“Date datetime default ’0000-00-00 00:00:00′ NOT NULL,”+
“Title text,”+
“Hue SMALLINT unsigned default 0,”+
“Saturation SMALLINT unsigned default 0,”+
“Brightness SMALLINT unsigned default 0″+
“)”
);
}
}

//method
public void setClipID(int ClipID){
this.ClipID = ClipID;
}

public void setHSB(int hue, int saturation, int brightness){
this.hue = hue;
this.saturation = saturation;
this.brightness = brightness;
}

public void writeDB(String Title){
getTimestamp();
msql.execute( “INSERT INTO ” + table +
” (ClipID, Date, Title, Hue, Saturation, Brightness) VALUES (” +
ClipID +”, ” +
“\’”+ Date +”\’, ” +
“\’”+ Title +”\’, ” +
hue +”, ” + saturation +”, ” + brightness +
“)” );
println(“sqlWrite—OK!”);
}

public void getTimestamp(){
msql.query(“select current_timestamp”);
msql.next();
Timestamp sqlts = msql.getTimestamp(“current_timestamp”);
String ts = sqlts + “”;
this.Date = ts;
}

}
[/java]

コメントをどうぞ