Skip to content

Instantly share code, notes, and snippets.

@Gumball12
Last active June 11, 2019 05:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Gumball12/2021271951b18351e8e56bad72edb10f to your computer and use it in GitHub Desktop.
Save Gumball12/2021271951b18351e8e56bad72edb10f to your computer and use it in GitHub Desktop.
3-1 기말 시험용
  • Thread class

    • new Thread(Runnable r)
    • start(): 인자로 들어온 Runnable 객체의 run() 메서드 실행
    • sleep(int n): nms 휴식
    • interrupted(): 중지
  • Data Stream

    • InputStream class
      • <InputStreamObject>.read(): 스트림에서 읽어들임
    • OutputStream class
      • <OutputStreamObject>.write(int o): 출력할 스트림에 쓰기
  • Character Stream

    • FileReader class
      • 파일에서 문자열 읽어와 스트림에 입력
    • FileWriter class
      • 스트림에서 문자열 읽어와 파일에 입력
  • 혼합 Stream

    • InputStreamReader class
      • web -> byte -> InputStreamReader -> String
    • OutputStreamReader class
      • String -> OutputStreamReader -> byte
  • Buffer Stream

    • BufferedReader class
      • BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
  • Network

    • java.net.URL class
      • constructor
        • new URL(String s)
        • new URL(URL baseURL, String relativeURL)
        • new URL(String protocol, String host, String fileName)
        • new URL(String protocol, String host, int port, String fileName)
      • openStream()
        • BufferedReader in = new BufferedReader(new InputStreamReader(<URLObject>.openStream()))
  • Application

    • Socket class
      • new Socket(String host, int port) constructor
    • ServerSocket class
      • public ServerSocket(int port) constructor
      • Socket accept(): 접속 요청 받고, 해당 접속에 대한 소켓 반환
  • DB SQL

    • Data define instructions
      • CREATE: 컬럼명과 데이터 타입으로 테이블 생성
      • ALTER: 테이블의 컬럼 추가/삭제
      • DROP: 테이블 삭제
      • USE: 사용할 DB 명시
    • Data manufacturing instructions
      • SELECT: DB로부터 데이터 쿼리 및 출력
      • INSERT: 새로운 레코드 테이블에 추가
      • DELETE: 지정된 레코드 삭제
      • UPDATE: 레코드 값 변경
  • JDBC (java.sql.*)

    • Class.forName('com.mysql.jdbc.Driver'); // with ClassNotFoundException ex.
      • load JDBC class driver
      • ClassNotFoundException: failed to find jdbc driver
    • Connection DriverManager.getConnection(String url, String user, String pw); // SQLException
      • String url := "jdbc:mysql//localhost/use_db"
      • SQLException: failed to connect
    • Statement <ConnectionObject>.createStatement();
      • get statement object
    • ResultSet <StatementObject>.executeQuery(String query);
      • execute the SQL query and get a ReaultSet object
  • ReslutSet class

    • close()
    • last(): cursor to last record
    • getRow(): get an index number of row
    • next(): next record
    • previous(): previous record
    • absolute(int rownum): move to rownum record
    • isFirst()
    • isLast()
    • get<Type>(int columnIndex), get<Type>(String columnName)
  • stmt update

    • stmt.executeUpdate(String sql);
  • updatable ResultSet object

    • 이를 위해서는 맨 처음 Statement 객체 생성할 때, 옵션을 줘야만 한다.
      • Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
      • ResultSet rs = stmt.executeQuery("SELECT * FROM users");
    • cancelRowUpdate()
    • insertRow(): 현재 레코드에 대해 insert
    • deleteRow(): 현재 레코드에 대해 delete
    • updateRow(): 현재 레코드에 대해 update
    • update<Type>(String columnName, <Type> value): 값 업데이트

Network 순서

import java.net.*;

public class Main {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://java.sun.com/");

            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

            while ((String line = in.readeLine()) != null) {
                System.out.prnitln(line);
            }

            in.close();
        } catch (IOException) {
            // input out exception
        }
    }
}

JDBC 순서

// 1: import module
import java.sql.*;

public class Main {
    public static void main(String[] args) {
        Connection con;

        try {
            // 2: dynamic-import module
            Class.forName("com.mysql.jdbc.Driver");

            // 3: get connectino
            con = DriverManager.getConnection("jdbc:mysql://localhost/user_db", "username", "password");
        } catch (ClassNotFoundException ex) {
            // failed to find the mysql-jdbc driver
        } catch (SQLException ex) {
            // failed to connect
        }

        // 4: create statement
        Statement stmt = con.createStatement();
        Statement stmt_updatable = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

        // 5: executy query
        ResultSet rs = stmt.executeQuery("SELECT * FROM users");
        ResultSet rs_updatable = stmt.executeQuery("SELECT * FROM users");

        // executy query (update)
        stmt.executeUpdate("INSERT INTO users (username, age) VALUES ('Darwin', '10')");

        // 6: interate result set
        while (rs.next()) {
            int id = rs.getInt("userid");
            String name = rs.getString("username");
        }

        while (rs_updatable.next()) {
            rs_updatable.updateString("username", "UPDATED_" + rs_updatable.getString("username"));
            rs_updatable.updateRow();
        }
    }
}
  • Thread class

    • new Thread(Runnable r)
    • start(): 인자로 들어온 Runnable 객체의 run() 메서드 실행
    • sleep(int n): nms 휴식
    • interrupted(): 중지
  • Data Stream

    • InputStream class
      • <InputStreamObject>.read(): 스트림에서 읽어들임
    • OutputStream class
      • <OutputStreamObject>.write(int o): 출력할 스트림에 쓰기
  • Character Stream

    • FileReader class
      • 파일에서 문자열 읽어와 스트림에 입력
    • FileWriter class
      • 스트림에서 문자열 읽어와 파일에 입력
  • 혼합 Stream

    • InputStreamReader class
      • web -> byte -> InputStreamReader -> String
    • OutputStreamReader class
      • String -> OutputStreamReader -> byte
  • Buffer Stream

    • BufferedReader class
      • BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
  • Network

    • java.net.URL class
      • constructor
        • new URL(String s)
        • new URL(URL baseURL, String relativeURL)
        • new URL(String protocol, String host, String fileName)
        • new URL(String protocol, String host, int port, String fileName)
      • openStream()
        • BufferedReader in = new BufferedReader(new InputStreamReader(<URLObject>.openStream()))
  • Application

    • Socket class
      • new Socket(String host, int port) constructor
    • SerwverSocket class
      • public ServerSocket(int port) constructor
      • Socket accept(): 접속 요청 받고, 해당 접속에 대한 소켓 반환
  • DB SQL

    • Data define instructions
      • CREATE: 컬럼명과 데이터 타입으로 테이블 생성
      • ALTER: 테이블의 컬럼 추가/삭제
      • DROP: 테이블 삭제
      • USE: 사용할 DB 명시
    • Data manufacturing instructions
      • SELECT: DB로부터 데이터 쿼리 및 출력
      • INSERT: 새로운 레코드 테이블에 추가
      • DELETE: 지정된 레코드 삭제
      • UPDATE: 레코드 값 변경
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment