우편번호 저장 빈

package net.jeongsam.zipfinder;

public class ZipData {
	private Integer seq;
	private String zipcode;
	private String sido;
	private String gugun;
	private String dong;
	private String bunji;
	
	public Integer getSeq() {
		return seq;
	}
	public void setSeq(Integer seq) {
		this.seq = seq;
	}
	public String getZipcode() {
		return zipcode;
	}
	public void setZipcode(String zipcode) {
		this.zipcode = zipcode;
	}
	public String getSido() {
		return sido;
	}
	public void setSido(String sido) {
		this.sido = sido;
	}
	public String getGugun() {
		return gugun;
	}
	public void setGugun(String gugun) {
		this.gugun = gugun;
	}
	public String getDong() {
		return dong;
	}
	public void setDong(String dong) {
		this.dong = dong;
	}
	public String getBunji() {
		return bunji;
	}
	public void setBunji(String bunji) {
		this.bunji = bunji;
	}
}

우편번호 매니저

package net.jeongsam.zipfinder;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;

public class ZipManager {
	private Collection<ZipData>zipTable = new ArrayList<ZipData>();
	
	public Collection<ZipData> search(String dong)
			throws ClassNotFoundException, SQLException {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
		// DB 접속 정보 (URL 형식)
		String url = "jdbc:mysql://127.0.0.1/example";
		// DB에 전달할 SQL문
		StringBuilder sql = new StringBuilder();
		
		sql.append("SELECT seq, zipcode, sido, gugun, dong, bunji ");
		sql.append("FROM ziptable ");
		sql.append("WHERE dong LIKE '%" + dong + "%'");
		
//		System.out.println(sql.toString());
		try {
			// JDBC 드라이버 로딩
			Class.forName("com.mysql.jdbc.Driver");
			// DBMS에 연결 : Connection 인스턴스 생성
			conn = DriverManager.getConnection(url, "root", "암호");
			// Query 객체 생성 : SQL문 DB로 전달
			stmt = conn.createStatement();
			// SQL 문 DB로 전달 실행하여 ResultSet으로 결과 받음
			rs = stmt.executeQuery(sql.toString());
			// ResultSet에 담긴 데이터를 JavaBean 컬렉션으로 복사
			while (rs.next()) {
				// 행(row)를 담을 JavaBean 인스턴스 생성
				ZipData zipRecord = new ZipData();
				// JavaBean에 ResultSet 행(row)를 복사
				zipRecord.setSeq(rs.getInt(1));
				zipRecord.setZipcode(rs.getString(2));
				zipRecord.setSido(rs.getString(3));
				zipRecord.setGugun(rs.getString(4));
				zipRecord.setDong(rs.getString(5));
				zipRecord.setBunji(rs.getString(6));
				// JavaBean을 컬렉션에 추가
				zipTable.add(zipRecord);
			}
		} finally {
			
		}
		return zipTable;
	}
}

우편번호 찾기 메인 클래스

package net.jeongsam.zipfinder;

import java.sql.SQLException;
import java.util.Collection;
import java.util.Iterator;

public class ZipFinder {

	public static void main(String[] args) {
		ZipManager zipMgr = new ZipManager();
		Collection<ZipData> result = null;
		try {
			if (args.length != 1) {
				System.out.println("Usage: ZipFinder 동이름");
			} else {
				result = zipMgr.search(args[0]);
				if (result == null) {
					System.out.println("찾는 주소가 없습니다.");
				} else {
					Iterator<ZipData> itZipTable = result.iterator();
					while (itZipTable.hasNext()) {
						ZipData zipRec = itZipTable.next();
						System.out.print(zipRec.getZipcode() + " ");
						System.out.print(zipRec.getSido() + " ");
						System.out.print(zipRec.getGugun() + " ");
						System.out.print(zipRec.getDong() + " ");
						System.out.println(zipRec.getBunji() + " ");
					}
				}
			}
		} catch (ClassNotFoundException e) {
			System.err.println("JDBC 드라이버 로딩 에러!!");
		} catch (SQLException e) {
			System.err.println("DB 연결 에러!!");
			e.printStackTrace();
		}
	}

}

+ Recent posts