S-JIS[2007-09-14/2009-03-20] 変更履歴
JDBCでSQLを実行するサンプルとユーティリティーです。
概要はJavadoc参照。
JDBCサンプルソース(3.9kB)[/2009-03-20]
ちょっとしたDBのデータをプログラミングして作りたいとき等には、豪華なDBフレームワークなど必要としません。ほぼ素のJDBCを使ったシンプルな構造で充分です。
とは言っても毎回一から作るのは面倒なので、雛形として置いておきます。
Oracleでインサート及びアップデートする例が入っています。
実行にはoracle/ora92/jdbc/lib/ojdbc14.jarが必要。(14は「JDK1.4対応」という意味っぽい)
public static final OracleLoginInfo LOCAL_SCOTT = new OracleLoginInfo( "localhost", "ora92", "scott", "tiger"); public static final OracleLoginInfo FAR_SCOTT = new OracleLoginInfo( "192.168.xxx.yyy", "ora92", "scott", "tiger");
public static void main(String[] args) throws Exception {
//DB接続情報を別クラスにしておくことで、
//コメントを書き換えるだけで接続先をすぐ変えられる。
OracleLoginInfo db = LOCAL_SCOTT;
// OracleLoginInfo db = FAR_SCOTT;
String url = "jdbc:oracle:thin:@" + db.getServer() + ":" + db.getPort() + ":" + db.getSid();
// String url = "jdbc:oracle:oci:@" + db.getSid();
String usr = db.getUser();
String pwd = db.getPassword();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url, usr, pwd);
conn.setAutoCommit(false);
try {
execute(conn);
conn.commit();
} catch (Exception e) {
conn.rollback();
throw e;
} finally {
conn.close();
}
}
protected static void execute(Connection conn) {
for (int no = 1; no < 10; no++) {
System.out.println(no);
String sql = createSql(no);
// System.out.println(sql);
SqlUtil.execute(conn, sql);
}
}
SQL生成と実行を分けておくことで、(実行をコメントアウトしてSQL文をコンソール出力することで)実行 するSQL自体を簡単に確認することが出来る。
public static String createSqlInsertEmp(int empno) {
StringBuffer sb = new StringBuffer(512);
StringBuffer cb = new StringBuffer(256);
StringBuffer vb = new StringBuffer(256);
sb.append("insert into ");
sb.append("EMP");
sb.append("(");
append(cb, vb, "EMPNO", empno, false);
append(cb, vb, "ENAME", "name" + empno, true);
append(cb, vb, "JOB", "job" + empno, true);
append(cb, vb, "MGR", 0, false);
// append(cb, vb, "HIREDATE", "sysdate", false);
append(cb, vb, "HIREDATE", "to_date('2009/03/20','YYYY/MM/DD')", false);
append(cb, vb, "SAL", 1000, false);
append(cb, vb, "COMM", 0, false);
append(cb, vb, "DEPTNO", 10, false);
sb.append(cb);
sb.append(")values(");
sb.append(vb);
sb.append(")");
return sb.toString();
}
public static String createSqlUpdateEmp(int empno) {
StringBuffer sb = new StringBuffer(512);
sb.append("update ");
sb.append("EMP");
sb.append(" set ");
append(sb, "SAL", "SAL+10", false);
append(sb, "COMM", "COMM+1", false);
sb.append(" where EMPNO=");
sb.append(empno);
return sb.toString();
}