S-JIS[2007-09-14/2009-03-20] 変更履歴

Java JDBC SQLサンプル

JDBCでSQLを実行するサンプルとユーティリティーです。
概要はJavadoc参照。

JDBCサンプルソース(3.9kB)[/2009-03-20]


ちょっとしたDBのデータをプログラミングして作りたいとき等には、豪華なDBフレームワークなど必要としません。ほぼ素のJDBCを使ったシンプルな構造で充分です。
とは言っても毎回一から作るのは面倒なので、雛形として置いておきます。

Oracleでインサート及びアップデートする例が入っています。


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自体を簡単に確認することが出来る。


INSERT文を生成する例

	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();
	}

UPDATE文を生成する例

	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();
	}

自作ソフトへ戻る / 技術メモへ行く
メールの送信先:ひしだま