반응형

DTO(Data Transfer Object)

계층 간 데이터 교환을 위해 사용하는 객체로 데이터 교환만을 위해 사용하므로 로직이 없으며 getter, setter 메소드만 갖습니다. View와 Controller 사이에서 데이터를 주고 받을 때 사용합니다.

 

public class Student {

    private Integer id;
    private String name;
    
    public Student(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }

}

 

 

반응형
반응형

자바 MySQL 연동

싱글톤 패턴으로 MySQL과 연동하기 위한 클래스를 작성하였습니다.

1) url 빈칸 : 연결할 MySQL의 데이터베이스(스키마) 이름

2) user 빈칸 : MySQL 사용자 아이디

3) pass 빈칸 : MySQL 사용자 비밀번호

MySQL 연동을 위한 DBConnection 클래스
싱글톤(Singleton) 패턴을 이용하여 외부에서 객체 사용

반응형
반응형

자바와 데이터 베이스 연동

자바에서 데이터 베이스와 연동하여 작업하기 위해서는 사용할 데이터 베이스의 드라이버와 데이터 베이스 사용자 정보가 필요합니다. 아래는 오라클을 이용하기 위해 만든 DButil 클래스입니다.

public class Dbutil {
	public static Connection getConnection() {
    	Connection conn = null; // 커넥션을 담을 변수 생성
        
        String driver = "oracle.jdbc.driver.OracleDriver";
        
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        
        String user = "xxxx"; // 데이터 베이스 사용자의 접속 아이디 입력
        
        String password = "xxxx"; // 데이터 베이스 사용자의 접속 비밀번호 입력
        
        try {
        	Class.forname(driver);
        	conn = DriverManager.getConnection(url, user, password);
        }catch (Exception e) {
       		System.out.println("데이터 베이스 연결 실패");
    	
        }return conn;
    }
}

싱글톤 패턴 클래스로 생성하였습니다. 싱글톤이란 객체를 생성할 때 한 번만 메모리를 할당하여 메모리 효율을 극대화하기 위한 패턴입니다.

1. Connection conn = null; 데이터 베이스 커넥션 정보를 담을 객체 conn을 생성합니다.

2. 문자열 driver, url, user, password에 각각 데이터 베이스 드라이버 주소, 데이터 베이스 연결 주소, 사용자 아이디와 비밀번호를 입력합니다.

3. 커넥션 연결 시 예외처리를 해줘야 하기 때문에 try, catch로 묶어서 드라이버를 로딩하고 conn에 커넥션 정보를 담아줍니다.

인텔리제이에서 자바와 오라클 연동 테스트

아래 코드에서는 따로 클래스를 생성하지 않고 main에서 오라클과 연동되는지 확인했습니다.

자바에서 오라클과 연동
Connection의 주소값

반응형

'Java > Java 객체 지향' 카테고리의 다른 글

[Java] DTO란?  (0) 2022.02.08
[Java] 자바 MySQL 연동  (0) 2021.05.13
[Java] 인터페이스(Interface)  (0) 2020.12.28
[Java] 추상 클래스(Abstract Class)  (0) 2020.12.28
반응형

자바 인터페이스

인터페이스는 추상 클래스(Abstract Class)의 일종으로 추상 클래스와 같이 추상 메소드를 같지만 값이 변하는 일반 멤버 변수는 가질 수 없습니다. JDK 1.8 이전 버전에서는 몸통(구현부)이 있는 일반 메소드를 가질 수 없었으나 JDK 1.8 버전부터는 디폴트 메소드와 정적 메소드 구현이 가능해졌습니다. 인터페이스는 inteface 키워드를 통해 선언하며 기능을 물려받는 클래스는 추상 클래스를 물려받는 것과는 다르게 상속(extends)이 아닌 구현(implements)한다고 표현합니다.

interface 인터페이스명 {
	
    // 상수 선언
    public static final 타입 상수이름 = 값;
    
    // 추상 메소드 선언
    public abstract 타입 메소드명();
	
    // 디폴트 메소드
    default 타입 메소드명();
    
    // 정적 메소드
    static 타입 메소드명() {
    	// 구현부
    }
}

위와 같이 상수, 추상 메소드, 디폴트 메소드, 정적 메소드를 구성원으로 가질 수 있습니다.

인터페이스를 사용하는 이유

인터페이스를 사용하면 구현하는 클래스에게 일부 구성원 구현에 대해 강제할 수 있습니다. 추상 메소드를 오버라이딩을 통해 구현해야 하며 인터페이스가 제공하는 정적 메소드를 무조건 사용해야 합니다. 이는 자바의 다형성을 극대화하여 코드의 생산성을 높이고 프로그램 유지, 보수의 용이성을 높이기 위함에 있습니다.

인터페이스의 구현

인터페이스도 추상 클래스와 마찬가지로 혼자서는 객체를 생성할 수 없습니다. 즉 추상 클래스가 하위 클래스에서 상속을 통해 추상 메소드를 완성시키는 것과 같이 인터페이스도 구현 클래스에서 추상 메소드를 완성시킵니다.

class 클래스명 implements 인터페이스명 {
	
    // 인터페이스를 구현하면 인터페이스에 선언된 추상 메소드를 반드시 구현해야 합니다.
    
}

인터페이스와 추상 클래스의 차이

얼핏 봤을 때 인터페이스와 추상 클래스는 구현(implements)하고, 상속(extends)한다는 키워드만 제외하고 보면 둘 다 추상 메소드를 갖으며 스스로 객체를 생성할 수 없다는 점에서 같아 보입니다. 하지만 자바에서는 추상 클래스의 다중 상속을 막아두었기 때문에 인터페이스를 통해 다중 상속을 할 수 있고 구현하는 모든 클래스에 대해 특정한 메소드를 반드시 구현하도록 강제할 수 있습니다.

반응형

+ Recent posts