프로그래밍 51

DBMS 5일차 -JDBC

>JDBC(Java DataBase Connectivity) -자바에서 데이터베이스에 접속할 수 있도록 해주는 자바 API (자바와 데이터베이스에 다리를 하나 놓고 택배기사가 물건을 옮기도록 하여 전달한다.) :라이브러리 위치 C:\program Files (x86)\MySQL\Connector J 8.0 1.설계도 읽기 Class.forName("com.mysql.cj.jdbc.Driver"); -->try, catch로 예외처리를 해주자 *ClassNotFoundException(드라이버 로딩 실패) 2.내가 넣으려는 database의 url , 접속하기 위한 mysql 아이디,비밀번호 적어두기 = 다리짓기: 다리 지을 위치, 방법 정하기 String url = "jdbc:mysql://localho..

DBMS 4일차 - DBMS 문법

>Auto Increment -TABLE에 데이터가 추가될 때마다 변하는 값을 미리 설계할 수 있다 : PK이고 자료형이 INT라면 설정 가능 CREATE TABLE 테이블명( PK명 INT PRIMARY KEY AUTO_INCREMENT, ... ) >DATE, DATETIME 타입 -DATE : 'YYYY-MM-DD' 형태로 삽입 -DATETIME: 'YYYY-MM-DD HH:MI:SS' 형태로 삽입 -지금이순간: now() >별칭 -SELECT절에서의 별칭(컬럼 별칭) : AS 뒤에 한칸 띄고 / 그냥 한칸 띄우고 작성 ex) SELECT 1+1 AS "RESULT" FROM dual; -FROM절에서의 별칭(테이블 별칭) : 테이블명 뒤에 한칸 띄우고 작성 >LIKE절 -조건식 :뒤에 오는 와일드..

DBMS 3일차 - 정규화,DML

>정규화 -삽입, 수정, 삭제의 이상현상을 제거하기 위해 진행한다. : 데이터 중복을 최소화 할 수 있고 대부분 3차 정규화까지 진행한다. 예를 들어 아래와 같은 정보를 넣으려고 한다. 아이디 이름 전공 수업코드 수업명 수업인원 apple 김사과 컴공과 C001 너무쉬운자바 30 apple 김사과 컴공과 C002 너무쉬운DBMS 35 apple 반하나 수학과 C002 너무쉬운DBMS 35 1)삽입이상 새로운 학생이 추가되었고 그 학생은 수강신청한 과목이 없다면 수업코드에 NULL을 넣거나 혹은 'XXXX' 같은 약속된 코드값을 삽입해 주어야 한다. 이러한 현상을 삽입 이상이라고 한다. 2)갱신이상 중복 행 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제이고 만약 김사과가 전과해서 새로운 과로 이..

DBMS 2일차 -데이터 베이스, 테이블, 모델링

>데이터베이스 생성 : CREATE DATABASE 데이터베이스명; >데이터베이스 사용 : USE 데이터베이스명; **본 수업에서 {} 의미 : 생략이 가능하다는 의미 >DDL (Data Definition Languagae ) -데이터 정의어 -테이블에 관련된 쿼리문 1.CREAT : 테이블 생성 2.ALTER : 테이블 수정 3.DROP : 테이블 삭제 >자료형 자바 할때처럼 데이터를 넣을때는 자료형을 써주어야 한다. 1. 숫자형 1) INT : 정수 2) DECIMAL(n,m) : n(전체자리수)/ m(소수점자리수) ex) DECIMAL(4,2)--> -99.99 ~99.99 (double,float 대신) 2.문자형 1) CHAR(n) :n바이트의 문자열(고정형),빈 자리는 그대로 남겨둔다. ex..

DBMS 1일차 -DBMS

>DB(데이터베이스) -데이터들의 집합소(저장소) >DBMS(DataBase Management System) -데이터베이스를 관리하는 시스템 ex)오라클, 마리아, 몽고, MySQL.. >Table(테이블) -특정 집단에 대한 데이터가 표 형태로(행, 열) 저장되는 공간 :테이블을 설계한다 라는 뜻은 특정 데이터들이 들어올 수 있도록 공간을 확보하고 체계적으로 틀을 잡아둔다는 뜻이다. ex)자동차 테이블 설계 : "자동차는 브랜드, 색깔, 가격..이런 데이터들이 있어~라고" 정의 >Row(행, 레코드, 튜플) 하나의 데이터 그 주르이 모든 데이터들은 하나의 대상에 대한 데이터들이다. 자동차 테이블 내차에 관한 데이터 [ferrari|Red |65000] 엄마차에 관한 데이터 [K7 |White| 700..

Java 14일차 - Thread, 파일 입출력

>Thread(쓰레드) >>프로세스 - 실행된 프로그램 - 운영체제로부터 시스템 자원을 할당받는 작업의 단위 : 자바 프로그램은 운영체제 대신 JVM에 의해 자원을 할당받는다. >>쓰레드 -프로세스의 특정한 수행 경로/프로그램의 처리 경로 /프로그램의 흐름 (main메소드가 실행되면 main thread가생성되고 직접 안에있는 내용을 처리해준다) -쓰레드는 단일 쓰레드와 멀티 쓰레드가 있다. >>멀티 쓰레드 -하나의 프로세스를 동시에 처리하는 것처럼 보이지만 사실은 매우 짧은 당위로 분할해서 차례대로 처리한다. : 여러개의 경로를 가질 수 있게 한다. :한개의 처리경로를 여러개로 나누어 동시 작업이 가능해진다. -웹 페이지(JSP)가 대표적인 멀티 쓰레드 응용 프로그램이다. 1. 효율성 증가 2. 처리량..

Java 13일차 - Collection Framework

>컬렉션 프레임워크(Collection Framework) -많은 데이터들을 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스 및 인터페이스의 집합 : 자료구조의 일종 Collection(I) List(I) Set(I) ArrayList -Array는 배열 이라는 뜻이고 List는 원소들의 나열된 묶음이다. -ArrayList는 배열을 이용해서 원소들을 나열해 묶는 클래스이다. -컬렉션 클래스들 중 가장 많이 사용되는 클래스이다. :인덱스를 이용해서 배열 요소에 빠르게 접근 가능하지만 크기를 늘리기 위해서(요소를 추가할 때) 새로운 배열을 생성하고 기존의 값들을 옮겨야 하므로 느리다. :배열은 처음에 몇칸을 할당할지 고정해야 했지만, ArrayList는 값을 넣는 만큼 자동으로 늘어난다. ..

Java 12일차 -Object, Wrapper,Generic class

>Object 클래스 -모든 클래스들의 최상위 클래스 ToString() :객체 출력시 나올 문자열 정의(객체에 대해 설명하는 문자열) 시작하기전에 우리가 매일 쓰는 System.out.println(); 매소드를 아는가? 우리 선배님들이 이 메소드를 선언할 때는 후에 어떤것을 이 메소드를 이용해서 출력할지 알 수 없었기 때문에 println 안에는 object타입의 매개변수가 선언되도록 만들어주셨다. 그래서 이 뜻은 아무거나 객체 하나 넘겨라 라는 뜻이다. 또한 println은 외부에서 어떤 객체를 선언하게 되면 내부에서 그 객체.toString()을 사용해서 출력한다. :toString을 붙여서 출력하게 되면 tostring을 사용한 부분 통째로 문자열이므로 단순한 문자열 출력이다 부모클래스(obje..

Java 11일차 -익명 클래스, 예외처리

>익명 클래스(anonymous inner class) 이름이 없는 클래스 클래스 객체명 = new 클래스() { }; 그러면 형변환해서 사용할 수 있지않나..?!!! but, 형변환할때 클래스의 이름이 필요하다. 근데 익명클래스는 이름이 없다. 그러므로 다운캐스팅이 불가능하다. 1.익명메소드의 예 2.익명클래스로 인터페이스를 호출하는 방법 --------------------------------------------------------------------------------------------------------------------------------->예외처리 에러 : 심각한 오류 예외 : 덜 심각한 오류, 개발자들이 일부러 발생시키는 예외이다. syso(10/0) 출력하면 어떻게 나올..

Java 10일차 - 추상,내부 클래스

>접근 권한 제어자 :다른 패키지 혹은 다른 클래스에서 해당 필드에 접근할 수 있는 권한을 제어해주는, 설정해주는 키워드들 -종류 (default) :다른 패키지에서 접근 불가 when? 확실하게 같은 패키지에서만 이용할 때, 귀찮을 때 public :모든 곳에서 접근 가능 when? 모든곳에서 자유롭게 접근이 가능해야하는 필드들 (데이터를 처리하고 기능을 담당하는 메소드들) private :다른 클래스, 다른 패키지에서 접근 불가 when? 데이터를 담는 변수들 (게시글 제목,회원 아이디,...) protected :다른 패키지에서 접근 불가/ 단 자식은 자신의 필드처럼 접근 가능 when? 상속이 목적(자식 클래스들이 오버라이딩 해서 써야하는 메소드) **private 필드는 직접 접근할 방법이 하나..