メモ – JDBCでBLOBの読み書きを行う。
テーブル
blob_testテーブルを作成(実験ではOracleを利用)
create table blob_test( id char(1) primary key, obj blob );
ソースコード
insert
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class BlobInsert{
public static void main(String[] args) throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:sample",
"user",
"pass");
File file = new File("c:\\blob.txt");
String sql = "insert into blob_test(id, obj)VALUES('1', ?)";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setBinaryStream(1, new FileInputStream(file), (int)file.length());
int result = stmt.executeUpdate();
stmt.close();
}
}
select
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class BlobRead{
public static void main(String[] args) throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:sample",
"user",
"pass");
Statement state = con.createStatement();
String sql = "select * from blob_test";
boolean result = state.execute(sql);
ResultSet rs = state.getResultSet();
while(rs.next()) {
String id = rs.getString(1);
Blob blob = rs.getBlob(2);
InputStream in = blob.getBinaryStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int bytes;
byte b[] = new byte[4096];
while ((bytes = in.read(b)) != -1){
baos.write(b, 0, bytes);
}
System.out.println(id + ":" + baos.toString());
}
con.close();
}
}
メモ – native2ascii
概要
native2asciiはsunのSDKに付属しているコマンドベースのツール。
このツールを利用すると、OSネイティブのファイルをUnicodeのAsciiファイルに変換することができる。
このツールを利用すると、OSネイティブのファイルをUnicodeのAsciiファイルに変換することができる。
設定ファイルなどに日本語を含める場合、native2asciiでUnicodeに変換しておくことで、文字化けを回避することができる。
ツールの本体は、%JAVA_HOME%\bin\native2ascii.exe
ネイティブテキスト→ASCII変換
コマンドラインで以下の書式にしたがって入力する。
> native2ascii [変換前のファイル名(ファイルパス)] [変換後のファイル名(ファイルパス)]
例
a.txt
てすと。
native2ascii実行
native2ascii a.txt b.txt
b.txt
\u3066\u3059\u3068\u3002
ASCII→ネイティブテキスト変換
コマンドラインで以下の書式にしたがって入力する。
> native2ascii -reverse [変換前のファイル名(ファイルパス)] [変換後のファイル名(ファイルパス)]
例
b.txt
\u3066\u3059\u3068\u3002
native2ascii実行
native2ascii -reverse b.txt c.txt
c.txt
てすと。
メモ – POJO(Plain Old Java Object)
POJO(Plain Old Java Object)
POJOとは普通のJavaオブジェクトのことである。
POJOは、JavaBeanやEJBのEntityBean、SessionBeanなどのように、特定の仕様や特定のフレームワークが提供しているインタフェースに依存しない。
POJOは、JavaBeanやEJBのEntityBean、SessionBeanなどのように、特定の仕様や特定のフレームワークが提供しているインタフェースに依存しない。
この言葉はPOJOを利用することの重要性を広めるために、MartinFowler, RebeccaParsons, JoshMacKenzie達によって生み出された。

