Minimaler SQL-Client in Java


Ich hab gerade einen kleinen SQL-Client geschrieben, mit dem man einfach SQL-Statements gegen eine Datenbank absetzen kann. Falls jemand auf der Suche ist, bedient euch. :-) Aktuellere Versionen gibt es vielleicht später unter http://wikihost.org/wikis/kopis/wiki/prog:simplesqlclient.java. Dort ist auch der Quelltext besser formatiert, also schaut’s einfach mal an.

Wer Verbesserungen hat, der kann sich gern in den Kommentaren zu Wort melden. :-)

package com.basf.migration.region;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.csc.provider.DbmsProviderFactory;
import com.csc.provider.UnavailableException;

public class SimpleSqlClient {

  public SimpleSqlClient(String statement, String driver, String dburl, String username, String password) {
          Connection conn = null;
          try {
              Class.forName(driver);
        conn = DriverManager.getConnection(dburl, username, password);
        execute(conn, statement);
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } finally {
        try {
          conn.close();
        } catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch(NullPointerException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
    }

private void execute(Connection conn, String statement) throws SQLException {

      Statement stmt = conn.createStatement();
      boolean executed = stmt.execute(statement);
      ResultSet result = stmt.getResultSet();
      for (int column = 1; column<= result.getMetaData().getColumnCount(); column++) {
        System.out.print(result.getMetaData().getColumnName(column) + "");
      }
      System.out.println();
while(result.next()) {
        for (int column = 1; column<= result.getMetaData().getColumnCount(); column++) {
          System.out.print(result.getObject(column) + "");
        }
        System.out.println();
      }
    }

public static void main(String[] args) {
      if(args == null || args.length != 5) {
        System.err.println("Usage:\t" + SimpleSqlClient.class + " SQLSTATEMENT DRIVER_CLASSNAME DB_URL USERNAME PASSWORD");
        System.exit(-1);
      } else if(args.length == 5) {
        new SimpleSqlClient(args[0], args[1], args[2], args[3], args[4]);

    }
}

Weitere Artikel

Crossfit Open WOD 17.5

Crossfit Open WOD 17.4

Crossfit Open WOD 17.3

Crossfit Open Workout 17.2

Crossfit Open Workout 17.1

Run Feedbin in your local Kubernetes cluster

Running Threema Web in Docker

Neues Workout Video

Diät Update #1

Workout 21.01.2017