Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.sql.BatchUpdateException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class Main {
    public static void main(String[] args) throws Exception {
        Connection conn = getConnection();
        conn.setAutoCommit(false);
        Statement st = conn.createStatement();

        st.executeUpdate("create table survey (id int, name VARCHAR(30) );");

        String INSERT_RECORD = "insert into survey(id, name) values(?,?)";

        PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);
        pstmt.setString(1, "1");
        pstmt.setString(2, "name1");
        pstmt.addBatch();

        pstmt.setString(1, "2");
        pstmt.setString(2, "name2");
        pstmt.addBatch();

        try {
            // execute the batch
            int[] updateCounts = pstmt.executeBatch();
        } catch (BatchUpdateException e) {
            int[] updateCounts = e.getUpdateCounts();
            checkUpdateCounts(updateCounts);
            try {
                conn.rollback();
            } catch (Exception e2) {
                e.printStackTrace();
                System.exit(1);
            }
        }
        // since there were no errors, commit
        conn.commit();

        ResultSet rs = st.executeQuery("SELECT * FROM survey");
        outputResultSet(rs);

        rs.close();
        st.close();
        conn.close();
    }

    public static void checkUpdateCounts(int[] updateCounts) {
        for (int i = 0; i < updateCounts.length; i++) {
            if (updateCounts[i] >= 0) {
                System.out.println("OK; updateCount=" + updateCounts[i]);
            } else if (updateCounts[i] == Statement.SUCCESS_NO_INFO) {
                System.out.println("OK; updateCount=Statement.SUCCESS_NO_INFO");
            } else if (updateCounts[i] == Statement.EXECUTE_FAILED) {
                System.out.println("Failure; updateCount=Statement.EXECUTE_FAILED");
            }
        }
    }

    private static void outputResultSet(ResultSet rs) throws Exception {
        ResultSetMetaData rsMetaData = rs.getMetaData();
        int numberOfColumns = rsMetaData.getColumnCount();
        for (int i = 1; i < numberOfColumns + 1; i++) {
            String columnName = rsMetaData.getColumnName(i);
            System.out.print(columnName + "   ");

        }
        System.out.println();
        System.out.println("----------------------");

        while (rs.next()) {
            for (int i = 1; i < numberOfColumns + 1; i++) {
                System.out.print(rs.getString(i) + "   ");
            }
            System.out.println();
        }

    }

    private static Connection getConnection() throws Exception {
        Class.forName("org.hsqldb.jdbcDriver");
        String url = "jdbc:hsqldb:mem:data/tutorial";

        return DriverManager.getConnection(url, "sa", "");
    }
}