JavaでJDBCドライバを使ってのSQL処理

https://github.com/aipocom/aipo/blob/master/core/src/main/java/com/aimluck/eip/filter/ALMigrateFilter.java#L91

  @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文はこれを使います。