JDBC PreparedStatement Statement 클래스보다 기능이 향상된 클래스 코드의 안정성과 가독성이 높다. 인자 값으로 전달이 가능하다. 문법 Connection conn = DriverManager.getConnection("url","id","pw") PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM TABLE"); ResultSet rs = pstmt2.executeQuery(); 기본 문법은 Statement와 다를게 없지만 쿼리의 내용을 동적으로 생성해야 할 때 값을 가독성이 좋은 형태로 넣을 수 있다. 예시 Statement int min_salary = 1000; String min_id = 110; stmt = ..
JDBC 프로젝트에 ojdbc 라이브러리를 추가했으면 이제 자바코드로 오라클을 다룰 수 있다. ojdbc 라이브러리 추가방법 https://itjy2.tistory.com/220 ojdbc 드라이버 로드 Class.forName("oracle.jdbc.driver.OracleDriver"); Class.forName을 사용하여 해당 DB사의 jdbc 드라이버를 로드 한다. ClassNotFoundException이 발생할 수 있다. DB와 연결 생성 Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521/orcl", "hr", "hr"); DriverManager 클래스를 통해 DB와의 연결을 생성한다. DB접속에 ..
Java / JDBC JDBC 자바에서 DB 프로그래밍을 하기 위해 사용하는 API 어떤 DB와도 호환할 수 있도록 설계 되어있다. Java부분의 소스는 어떤 DB를 사용하더라도 일정하다. DB를 제작한 쪽에서 jdbc에서 요구하는 형식을 맞추어 개발하기 때문에 새로운 DB도 기존의 jdbc로 사용할 수 있다. OJDBC 오라클 DB가 JDBC API와 소통하기 위해 만든 라이브러리 오라클 DB가 설치된 폴더에 포함되어 있다. 프로젝트에 오라클의 jdbc 드라이버 추가하기 프로젝트 우클릭 -> Build Path -> Configure Build Path Add External JARs 클릭 설치된 오라클의 ojdbc8.jar 선택 -> Apply and Close ojdbc는 아래 경로에 존재한다. 1..
Java / Random Random Java에서 무작위 double타입의 랜덤 소수를 생성해주는 메소드이다. (0 ~ 1 사이의 랜덤 소수) Math.random()으로 접근해서 사용한다. 원하는 범위의 랜덤숫자 생성하는 방법 (int)(Math.random() * 45 + 1) // 1 ~ 45 (int)(Math.random() * 45) // 0 ~ 44 1. 실수가 아닌 정수형으로 생성하려면 형변환을 하거나, 반올림을 하면 된다. 2. random()뒤에 원하는 범위를 지정해준다 ex ) Math.random() * 최대값 + 최소값 (최소값을 지정 안하면 0부터 시작한다.) Random 클래스 좀 더 편리하게 랜덤값을 선택할 수 있는 기능들이 모여있는 클래스 사용하려면 Random클래스를 im..
Java / StringBuiler StringBuilder 문자열을 다루거나 문자열끼리 연산할 때 String끼리 누적 연산을 하는 것은 연산속도가 매우 떨어진다. String을 이용해서 연산을 하는 것보다 StringBuilder를 이용해서 연산을 하는것이 훨씬 효율적이다. String끼리 연산할 때는 새로운 객체를 계속 생성하며 연산하지만 StringBuilder는 객체를 생성하지 않고 더하기만 한다. 문법 StringBuilder sb = new StringBuilder("Hi"); // 생성 sb.append(" Java"); // 뒤에 Java 추가 System.out.println(sb); // Hi Java StringBuilder의 인스턴스를 생성하고 인스턴스.append("문자열") 을..
삼항연산자 간단한 if문을 한 줄로 표현할 수 있다. > 조건 ? true : false 로 표현한다 문법 System.out.println(1 == 1 ? "참" : "거짓"); // 참 System.out.println(1 == 2 ? "참" : "거짓"); // 거짓 예제 int a = 10; if(a % 2 == 0){ System.out.println("짝수"); }else{ System.out.println("홀수"); } 위의 if문을 삼항연산자로 줄이면 아래의 코드로 표현이 가능하다. System.out.println(a % 2 == 0 ? "짝수" : "홀수");
Java / charAt charAt 해당 문자열에서 원하는 번째의 문자를 char 타입으로 꺼내는 함수 문법 String str = "Hello, everyone!!!!"; System.out.println(str.charAt(7)); // e
복습겸 급여관리 프로그램을 만들고 있는데 총 급여가 실수형으로 출력되는게 참 거슬렸다. 이럴때 형변환을 해야하는것을 알고는 있지만 아직 나에게는 문법이 복잡하다고 느껴져서 지금까지는 있는대로 출력을하다가 한번 짚고 넘어가야 할 것 같아서 문법 정리하고 넘어가보겠다. 주의할 점은 형변환을 하려면 Math라는 함수를 이용해야하는데 이녀석을 import해줘야한다. import를 하지 않으면 아무리 똑같이써도 사용할 수 없다. import java.lang.Math; 를 상단에 써주도록하자. 그럼 사용법을 정리해보겠다. import java.lang.Math; public class Test { public static void main(String[] args) { int i; double d = 0.7; i..
네트워크 데이터를 다른장치로 이동시킬 수 있는 컴퓨터들과 주변 장치들의 집합이다. 네트워크의 연결된 모든 장치들을 노드라고 한다. 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 이동시킬때 계층을 통해 전송되는데 대표적인 모델이 OSI 7계층 모델이다. 포트와 프로토콜 컴퓨터의 주변장치를 접속하기 위한 물리적인 포트와 프로그램에서 사용되는 접속 장소인 논리적인 포트가 있다. 논리적인 포트 포트번호는 0 ~ 65535까지고 0~1023까지는 시스템에 의해 예약된 포트번호이기때문에 사용하지 않는게 좋다. 예약된 포트번호의 대표적인 예로는 80(HTTP) 21(FTP) 22(SSH) 23(TELNET)이 있다. 프로토콜 프로토콜은 클라이언트와 서버간의 통신 규약이다. 통신규약이란 상호간의 접속이나 절단,통신방식 주고..
Thread의 개념 [멀티 태스킹] OS에서 여러개의 프로세스가 실행되고 일을 처리하는것. [스레드] 프로세스 내에서 실행되는 각각 일을 하고있는 작은 프로세스 단위를 스레드라고 한다. 프로세스가 끝나도 스레드가 수행을 끝낼때까지는 스레드는 끝나지 않는다.(독립적) 멀티 스레드 두개 이상의 스레드를 사용하고 있는것. (병행적으로 처리) 스레드의 생명주기 New - 스레드가 만들어진 상태. (start()를 하는순간 runnable로 감( run()으로 직접호출 X) Runnable - 스레드 객체가 생성된 후에 start()메서드를 호출하면 Runnable 상태로 이동(스케줄러가 호출 할 수 있는 대기실) running - 멀티스레드를 사용할때 동시에 일을 시작하지않고 스케쥴러에 의해 먼저 호출된 스레드..
1.추상클래스란? 구체화를 시키지 못한 클래스 ( 추상 메소드를 갖고 있는 클래스) 객체를 생성할 수 있는 클래스는 실체클래스이다. 실체클래스들이 공유할 수 있는 특성을 가진 변수,메소드를 가지고 있는 것을 추상 클래스 라고하고, 추상클래스와 실체 클래스는 상속관계이다. 추상 클래스는 객체를 만들 수 없고 구체화를 시켜야지 사용 가능하다. 오직 상속을 위해서만 사용하는 클래스이다. 추상 메소드란? 구체화가 되지 못한 메소드고 가장 큰 특징은 강제성을 부여한다. 어떤 강제성이냐면 자식클래스 하나이상이 무조건 부모의 메소드를 오버라이딩을 해야한다. 부모가 정의 할 수 없기 때문에 만드는 메소드 ( 자식이 어떻게 사용 할 지 모르기 때문에) 이름만 정의해준다. 단 여러가지 기능중 여러클래스들이 같은 기능을 사..
List란? list는 배열의 한계 때문에 만들어진 자료형이다. List자료형에는 ArrayList,LinkedList등의 List인터페이스를 구현한 자료형이 있다. 배열은 사용할때 index크기를 정해야 하는데 list는 메모리가 허용하는 한 계속 추가할 수 있도록 만든 자료형 클래스이다. import java.util.List 는 인터페이스 클래스고 List를 사용하기 위해서는 인스턴스화를 해야한다. List는 인터페이스이고 ArrayList는 List에 상속된 클래스이다. ArrayList ArrayList는 내부적으로 데이터를 배열에서 관리하며 데이터의 추가,삭제를 위해 임시 배열을 생성해 데이터를 복사하는 방법을 사용한다.각 데이터는 인덱스를 갖고 있기 때문에 한번에 참조가 가능해서 검색할때 좋..