java/ch/wlkl/javaExamples/ExSql.java

/*
 * ExDb.java
 *
 * Created on 22. Januar 2004, 21:52
 */
package ch.wlkl.javaExamples;

import java.sql.*;
import java.util.*;

/**
 * prepare odbc 1. create access db 2. SystemSteuerung → Verwaltung →
 * Datenquellen accDb erfassen und auf DB zeigen lassen
 * 
 * @author walter
 */
public class ExSql {
    Map sqlTypes() {
        Map map = new HashMap();
        map.put(new Integer(Types.INTEGER), "INTEGER");
        return map;
    }

    Connection openConn() throws Exception {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        return DriverManager.getConnection("jdbc:odbc:accDb");
    }

    void select() throws Exception {
        Connection conn = openConn();
        Statement s = conn.createStatement();
        ResultSet rs = s.executeQuery("select * from family");
        ResultSetMetaData me = rs.getMetaData();
        for (int i = 1; i <= me.getColumnCount(); i++)
            System.out.println("col " + i + " " + me.getColumnName(i) + ": "
                    + me.getColumnTypeName(i) + ", c "
                    + me.getColumnClassName(i));
        while (rs.next()) {
            for (int i = 1; i <= me.getColumnCount(); i++)
                System.out.print(rs.getString(i)
                        + (rs.wasNull() ? "<null> " : " "));
            System.out.println("!");
        }
    }

    void prepare() throws Exception {
        Connection conn = openConn();
        PreparedStatement s = conn
                .prepareStatement("select * from family where vorname like '%' & ? & '%'");
        /*
         * ParameterMetaData pm = s.getParameterMetaData(); for (int i=1; i <=
         * pm.getParameterCount(); i++) System.out.println("par " + i + " " +
         * pm.getParameterClassName(i));
         */s.setString(1, "i");

        ResultSet rs = s.executeQuery();
        while (rs.next()) {
            System.out.println(rs.getString(1) + " " + rs.getString(2));
        }
    }

    public static void main(String[] args) {
        new Java(args, new String[] { "prepare" }).invokeMethods(new ExSql());
    }

}