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]
