스택 Stack - 데이터를 아래에서 위로 차례대로 쌓는 구조로 삽입과 삭제가 항상 한 쪽(Top)에서 이루어진다. - LIFO : 마지막에 추가된 데이터가 먼저 삭제됨 = FILO - Redo/Undo 기능에 활용된다. Backwrad, Forward로 구분하여 사용된다. Stack stack = new Stack(); stack.push("1"); stack.push("2"); stack.push("3"); System.out.println(stack); // toString() 생략 // 출력: [1, 2, 3] System.out.println(stack.push("4")); // 데이터 추가 // 출력: 4 Object peek() 스택 맨 위의 요소(마지막에 추가된 데이터)를 제거하지 않고 리..
컬렉션 프레임워크 - 자바에서 자료구조를 구현하여 제공하는 클래스들의 모음 - 컬렉션 인터페이스에는 Set, List, Map이 있다. - Set과 List는 Collection 인터페이스를 상속받고 있어 대부분의 메서드가 동일하다. Set - 인덱스 사용할 수 없어 저장 순서가 유지되지 않는다. - 중복 데이터는 저장되지 않는다. - Set 계열의 구현체 클래스 : HashSet, TreeSet 등 Set은 (인터페이스라서) new로 생성되진 않지만 인터페이스로 사용이 가능하다. HashSet > Set으로 업캐스팅하여 사용 (대부분의 기능을 사용하는 데 문제가 없다) Set set = new HashSet(); isEmpty() - boolean : 컬렉션 객체가 비어있는지 판별하는 메소드 size(..
DDL DDL(데이터정의어) : 객체(테이블, 뷰, 인덱스 등)를 생성, 수정, 삭제하는 명령어 - create, alter, drop, truncate - 작업 단위 : 객체(테이블, 뷰, 인덱스 등) - autocommit을 내포하고 있음. * 테이블 table 테이블 생성 시 기본 정보 : 테이블명, 컬럼명, 데이터타입 옵션 : default값, 제약조건 데이터타입 숫자 - int, bigint, double, float 문자 - char(고정길이 문자형), varchar(가변길이 문자형) 날짜 - date(연/월/일), datetime(연/월/일/시/분/초) * View 하나 이상의 테이블을 기반으로 생성되었으나 물리적으로 존재하지않고 DB에 정의만 되어있는 논리적 가상 테이블 - 보안성, 편의성..
Insert 데이터 삽입 insert into 테이블명[(컬럼1, 컬럼2, 컬럼3, ...)] values (값1, 값2, 값3, ...); 테이블 컬럼 순서를 아는 경우 desc departments; insert into departments values (10, 'Mysql', 20, 1500); 컬럼 순서를 모르는 경우 insert into departments(manager_id, location_id, department_id, department_name) values (21, 100, 200, 'Java'); sales_rc 테이블 생성 create table sales_rc ( id int, name varchar(10), salary int, commission_pct double(10..
delete delfeForm 아이디는 readonly로 패스워드만 입력되게 한다. 페이지 상관없이 값이 유지 => 세션값 가져오기 String id=(String)session.getAttribute("id"); %> 아이디 : 비밀번호 : DB 서버에 연결하고 SQL 쿼리 입력 후 실행 다음 행으로 이동 후 데이터가 있을 시, 아이디 비밀번호 일치를 묻고 일치하면 삭제한다. 없을 시 일치하지 않다고 출력 후 뒤로 이동 if(rs.next()){ sql="delete from members where id=?"; pstmt=con.prepareStatement(sql); pstmt.setString(1, id); // sql구문을 실행 pstmt.executeUpdate(); // 세션값 초기화 ses..
Insert insert Form 아이디 : 비밀번호 : 이름 : 우선 공통적으로 DB 서버에 연결하고 변수저장 String id=request.getParameter("id"); String pass=request.getParameter("pass"); String name=request.getParameter("name"); // JDBC 프로그램 불러오기 Class.forName("com.mysql.cj.jdbc.Driver"); // JDBC 프로그램으로 DB서버 접속 => 연결정보 저장 String dbUrl="jdbc:mysql://localhost:3306/jspdb1?serverTimezone=UTC"; String dbId="root"; String dbPass="1234"; Connec..
Wrapper 클래스 - 자바 기본 데이터타입과 일대일 대응하는 8개의 클래스 모음(java.lang 패키지) - 기본 데이터타입 변수로 할 수 있는 일이 한정적이므로 클래스로 정의하여 다양한 작업을 수행하도록 지원한다. 기본 데이터타입은 Stack 공간에 데이터를 저장 및 관리하지만 참조 데이터타입(객체)은 Heap 공간에 실제 데이터가 저장되며, 참조변수가 해당 공간의 주소값을 저장 및 관리한다. 기존엔 기본 데이터타입 변수와 참조 데이터타입 변수가 호환이 불가능 했으나 현재는 오토 박싱, 언박싱 기능의 제공으로 자동변환이 가능하다. 오토박싱 기본 데이터타입에서 Wrapper 클래스 타입 객체로 자동변환 (기본 데이터 => Wrapper) Heap 공간의 객체 박스에 기본 데이터타입 변수를 전달하여 ..
loginForm 로그인 ID : PW : loginPro 연결정보 저장 // 2. DB 서버에 접근할 DB 주소 String dbUrl="jdbc:mysql://localhost:3306/jspdb1?serverTimezone=UTC"; String dbId="root"; String dbPass="1234"; Connection con=DriverManager.getConnection(dbUrl, dbId, dbPass); // 3. 연결정보를 이용해서 sql구문 만들기 => PreparedStatement 내장객체 준비 // String sql="select * from 테이블이름 where 조건열=값 and 조건열=값"; String sql="select * from members where id..