@Override public void init(final FilterConfig filterConfig) { this.filterConfig = filterConfig; ServletContext servletContext = this.filterConfig.getServletContext(); InputStream resourceAsStream = servletContext .getResourceAsStream("WEB-INF/datasource/dbcp-org001.properties"); Connection conn = null; Statement stmt = null; try { Properties dbcpProp = new Properties(); dbcpProp.load(resourceAsStream); String driverClassName = dbcpProp.get("cayenne.dbcp.driverClassName").toString(); String url = dbcpProp.get("cayenne.dbcp.url").toString(); String username = dbcpProp.get("cayenne.dbcp.username").toString(); String password = dbcpProp.get("cayenne.dbcp.password").toString(); if (url.startsWith("jdbc:postgresql")) { // JDBCドライバのロード Class.forName(driverClassName); // データベース接続 System.out.println("Connecting to " + url); conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement();
のようにすることで、作法的にJDBCドライバを使ってのSQLの実行が行えます。
あとは以下の関数でSQLを実行します。
stmt.executeUpdate(); 返り値は影響があった行数 stmt.execute(); 返り値はBoolean。この関数でcreate databaseとかやってもResultSetが帰ってこないので、falseが返ってきます。 stmt.executeQuery(); SELECT文はこれを使います。