Back/JAVA

자바 빈(Java Bean)과 패키지(package)

시월해 2021. 3. 12. 14:50

 

 * 자바 빈(Java Bean)?

 - DB에 접근하여 특정 컬럼(속성)에 값을 저장하거나 저장된 값을 가져오는 자바 클래스.
 - Java Bean == DTO(Data Transfer Object) == VO(Value Object)
 - 구성요소
   1. 멤버변수 - DB 컬럼명 : 접근지정자(private)
   2. setter() : 지정자 메서드

   3. getter() : 획득자 메서드

 

* 패키지(package)?

 - 서로 연관성이 있는 클래스들과 인터페이스들의 묶음을 말함.
 - 패키지는 물리적으로 폴더 개념과 유사함.
 - 패키지는 서브패키지를 가질 수 있으며 "."으로 구분함.
 - import 키워드 : 현재 패키지의 클래스에서 다른 패키지에 있는
                 다른 클래스를 사용하고 싶은 경우 import를 해야한다.
                (단, 동일한 패키지에 있는 다른 클래스를 사용시에는 생략 가능)
    형식) import 패키지명.서브패키지명.클래스명;

 


기본예제)

package model;

public class MemberDTO {

	// 만약 DB상의 테이블의 이름이 member(회원 테이블)이라고 가정했을 때
	// member 테이블의 구성(컬럼)이 id, pwd, name, age, address
	// 로 구성되었다고 가정을 하면
	
	// 멤버변수
	private String id, pwd, name, address;
	private int age;
	
	public String getId() {
		return id;
	}
	
	public void setId(String id) {
		this.id = id;
	}
	
	public String getPwd() {
		return pwd;
	}
	
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getAddress() {
		return address;
	}
	
	public void setAddress(String address) {
		this.address = address;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	
}
package packages;

import model.MemberDTO;

public class Ex01 {

	public static void main(String[] args) {
		
		// model 패키지에 있는 MemberDTO 클래스를 사용하고 싶은 경우
		MemberDTO dto = new MemberDTO();
		
		dto.setId("hong");
		dto.setPwd("1234");
		dto.setName("홍길동");
		dto.setAddress("서울시 마포구");
		dto.setAge(27);
		
		// 화면에 출력해보자
		System.out.println("회원 아이디 >>> " + dto.getId());
		System.out.println("회원 비밀번호 >>> " + dto.getPwd());
		System.out.println("회원 이름 >>> " + dto.getName());
		System.out.println("회원 나이 >>> " + dto.getAge());
		System.out.println("회원 주소 >>> " + dto.getAddress());

	}

}

다른 패키지의 클래스인 memberDTO를 가져와서 사용한 것을 볼 수 있다.

package packages;

import java.util.Scanner;

import model.MemberDTO;

public class Ex02 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		// 1. 회원수를 입력 받아서 객체 배열에 회원수를 입력해보자.
		System.out.print("회원수를 입력하세요. : ");
		MemberDTO[] dtos = new MemberDTO[sc.nextInt()];
		
		// 2. 반복문을 이용하여 회원 수만큼 회원 정보를 키보드로 입력을 받자.
		for(int i=0; i<dtos.length; i++) {
			dtos[i] = new MemberDTO();
			
			System.out.println((i+1)+"번째 회원의 아이디, 비밀번호, 이름, 나이, 주소를 입력하세요...");
			
			dtos[i].setId(sc.next());
			dtos[i].setPwd(sc.next());
			dtos[i].setName(sc.next());
			dtos[i].setAge(sc.nextInt());
			dtos[i].setAddress(sc.next());
		}
		
		System.out.println("아이디\t비밀번호\t이름\t나이\t주소");
		
		for(int i=0; i<dtos.length; i++) {
			System.out.println(dtos[i].getId()  +"\t"+ 
							   dtos[i].getPwd() +"\t"+
							   dtos[i].getName()+"\t"+
							   dtos[i].getAge() +"\t"+
							   dtos[i].getAddress());
			System.out.println(":::::::::::::::::::::::::::::::::::::::::::::");
		}
		
		sc.close();
	}
	
}

다른 패키지에서 가져온 클래스로 객체 배열도 생성할 수 있다.