본문 바로가기

Java

(19)
executrQuery 전체의 데이터 가져오기 member의 전체를 다 가져온다. public static void main(String[] args) { Connection conn = null; PreparedStatement psmt = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); //DB연결 String user = "service"; String password="12345"; String url="jdbc:oracle:thin:@localhost:1521:xe"; conn = DriverManager.getConnection(url, user, password); String sql = "select * from member"; psmt = conn.prepareStatem..
executeQuery 한개씩 데이터를 가져오기 Scanner sc = new Scanner(System.in); System.out.println("아이디를 입력하세요 >>"); String inputId = sc.next(); System.out.println("비번을 입력하세요 >>"); String inputPw = sc.next(); //1.동적로딩 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.DB연결 String user = "service";// db 계정 유저이름 String password = "12345"; String url="jdbc:oracle:thin:@localhost:1521:xe"; Connection conn = DriverManager.getConnection(url..
동적로딩 로드타임 동적로딩 1.로드타임 동적 로딩은 클래스를 로딩할 때 필요한 다른 클래스를 동적으로 로딩하는 것이다. 2.예를 들어, System.out.println("Hello World");와 같은 코드가 작성되어 있는 Hello.java를 Hello.class로 컴파일 하고 JVM에 로딩한다고 생각해보자. 3.이때 필요한 System, String 관련 .class 파일도 같이 로딩한다. 런타임 동적로딩 1.코드를 실행하는 순간 클래스를 로딩하는 것이다. 2. JVM이 코드를 실행하다가 .class 파일을 로딩하는 것을 의미한다. 3.여기서 이번 주제인 Class.forName("로드할 클래스 이름") 이 사용된다.
preparedStatement,executeUpdate,finally PreparedStatement : 1. Statement와 동일한데 차이점은 인자값으로 SQL을 받기 때문에 특정한 SQL에 대한 통로라고 생각하면 된다. 장점: 1.따옴표와 자료형을 신경쓰지 않아도 된다. 2.사용자가 입력한(sql 구문) 데이터가 변경될 염려가 없다. 3.커넥션에서 생성하면서 SQL문이 DB에 전송되어진다. 단점: 1.오류발생시 변수에 입력되는 값을 알 수 없어서 디버깅이 어렵다. 2.한번만 파싱하고 값을 바꾼다.
ojdbc 설정하기 ojdbc : oracle 전용의 jdbc 라이브러리이다. oracle 에서 제공하는 오라클 DB를 관리할 수 있도록 도와주는 JDBC ojdbc를 설정 이미 설정 해버리긴 했었는데 External JARs -> ojdbc.jar(자신이 다운받은)를 넣어주면된다.
런타임 에러 vs 컴파일 에러 컴파일 에러 : 1. 변수오타를 쳤거나, 세미콜론 안넣거나 ojdbc가 없을때 이클립스에서 못잡아준다. 2. 컴파일러가 코드 오류를 알려주는 것으로, 코드가 문법적으로 틀리거나 수정할필요가 있는 경우 알려준다. 런타임 에러 : 1. 실행시 에러로 이클립스에서 잡아준다. 2. 컴파일이 완료되어 프로그램이 실행중에도 불구하고, 예외 상황으로 프로그램 실행 중에 발생하는 오류
jdbc(Java DataBase Connectivity )기본구조 jdbc : 자바에서 데이터베이스에 접속 / 관리 할 수 있게 해주는 드라이버(API) 자바로 작성된 프로그램으로 DB와 관련된 작업을 처리할 수 있도록 제공되는 기능(코드)들을 모아놓은 것 // 1. Driver 클래스 로드 Class.forName("oracle.jdbc.driver.OracleDriver"); 1. Class.forName으로 JDBC드라이버를 로딩해 준다. 이 부분은 ClassNotFountException 핸들링이 필요하므로 try-catch문으로 감싸주어야한다. 2. 개발자가 따로 관리하지 않는 static 객체들이 알아서 DriverManager에 등록이 되는 것이다. //2.DB연결 String user="service";//db 계정 유저 이름 - service계정 Str..
전역변수 vs 지역변수 전역변수 : 1. 전체에서 어디서든 호출하면 사용할수 있는 변수 2. 종류 : 객체 변수, 클래스 변수 지역변수 : 1. 특정한 구역({ })안에 생성되어 그 지역에만 사용할수 있는 변수 예시1) class Ex_variables{ int global_int; // 전역변수(객체변수) : 같은클래스에서 호출이 가능 static int global_statuc_int; // 전역변수(클래스변수) : 다른 클래스에서도 호출이 가능 void method() { int local_int = 0; //지역변수 { }안에 생성되며 { }를 벗어나면 } //method() 라는 메소드가 끝나는 시점에 바로 삭제 } class Ex_variables2 { int global_v;
VO (Value Object) 1. read-Only 특징(사용하는 도중에 변경 불가능하며 오직 읽기만 가능)을 가집니다. 2. DTO와 유사하지만 DTO는 setter를 가지고 있어 값이 변할 수 있습니다. 서로 다른 이름을 갖는 VO 인스턴스라도 모든 속성 값이 같다면 두 인스턴스는 같은 객체인 것이 핵심이다. 특정 값 자체를 표현하기 때문에 불변성 보장을 위해 생성자를 사용해야 한다. 예시) //생성자를 이용한 불변 객체 public class CarVO { private final String color; public CarVO(String color) { this.color = color; } } 그렇기 때문에 두 객체의 주솟값이 다르다. 이 때문에 값 만 비교하기 위해서 equals()와 hashCode()를 오버 라이딩(..
DTO (Data Transfer Object) 1. 계층 간 데이터를 전달하기 위한 객체 2. 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다. 3. 가변객체, 불변객체로 나뉜다. 가변객체 : getter와 setter를 쓰며 getter는 데이터를 불러오며 setter는 데이터를 수정한다. 본적인 getter/setter 만 가지고 있으며, 별도의 로직을 포함하지 않는다. 불변객체: getter를 쓰며 getter는 데이터를 불러오다.