[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/biblelamp/JavaExercises/master/Java%202/J2Lesson8/CRUD.java [Back]  [Original]

/**
 * Java. Level 2. Lesson 8
 * CRUD  Create, Read, Update, Delete
 *
 * @author Sergey Iryupin
 * @version 0.2 dated Jan 19, 2018
 */
import java.util.*;
import java.sql.*;

class CRUD implements IConstants {

    final String NAME_TABLE = "users";
    final String SQL_CREATE_TABLE =
        "DROP TABLE IF EXISTS " + NAME_TABLE + ";" +
        "CREATE TABLE " + NAME_TABLE +
        "(login  CHAR(6) PRIMARY KEY NOT NULL," +
        " passwd CHAR(6) NOT NULL);";
    final String SQL_SELECT = "SELECT * FROM " + NAME_TABLE + ";";
    final String DB_CREATED = "Darabase created.";
    final String RECORD_ADDED = "Record added.";
    final String RECORD_DELETED = "Record deleted.";
    final String RECORD_UPDATED = "Record updated.";
    final String UNKNOWN_COMMAND = "Unknown command, use [-c,-a,-r,-u,-d] only.";
    final String LOGIN_COL = "login";

    Connection connect;
    Statement stmt;
    ResultSet rs;
    String sql;

    public static void main(String[] args) {
        new CRUD(args);
    }

    CRUD(String[] args) {
        if (args.length == 0) {
            Scanner sc = new Scanner(System.in);
            System.out.print("> ");
            String line = sc.nextLine();
            args = line.split(" ");
        }

        switch (args[0]) {
            case "-c": 
                openDBFile(SQLITE_DB)
                    .createTable(SQL_CREATE_TABLE);
                System.out.println(DB_CREATED);
                break;
            case "-a": 
                openDBFile(SQLITE_DB)
                    .add(args[1], args[2]);
                System.out.println(RECORD_ADDED);
                break;
            case "-r": 
                openDBFile(SQLITE_DB)
                    .list();
                break;
            case "-u": 
                openDBFile(SQLITE_DB)
                    .update(args[1], args[2]);
                System.out.println(RECORD_UPDATED);
                break;
            case "-d": 
                openDBFile(SQLITE_DB)
                    .delete(args[1]);
                System.out.println(RECORD_DELETED);
                break;
            default:
                System.out.println(UNKNOWN_COMMAND);
        }
    }

    private CRUD openDBFile(String dbName) { // open/create database
        try {
            Class.forName(DRIVER_NAME);
            connect = DriverManager.getConnection(dbName);
            stmt = connect.createStatement();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return this;
    }

    private void createTable(String sqlCreateTable) { // create table
        try {
            stmt.executeUpdate(sqlCreateTable);
        } catch (Exception e) { 
            e.printStackTrace();
        }
    }

    private void add(String login, String passwd) { // add record
        try {
            stmt.executeUpdate("INSERT INTO " + NAME_TABLE +
                " (login, passwd) " +
                "VALUES ('" + login + "', '" + passwd + "');");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void update(String login, String passwd) { // update passwd by login
        try {
            stmt.executeUpdate("UPDATE " + NAME_TABLE +
                " set PASSWD='" + passwd +
                "' where LOGIN='" + login + "';");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void delete(String login) { // delete record by login
        try {
            stmt.executeUpdate("DELETE from " + NAME_TABLE +
                " where LOGIN='" + login + "';");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void list() { // show all records
        try {
            System.out.println("LOGIN\t\tPASSWD");
            rs = stmt.executeQuery(SQL_SELECT);
            while (rs.next())
                System.out.println(
                    rs.getString(LOGIN_COL) + "\t\t" +
                    rs.getString(PASSWD_COL));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Web Proxy Viewer  |  New URL  |  Original Page