관리 메뉴

nalaolla

우편번호 검색 본문

JAVA/99. ETC

우편번호 검색

날아올라↗↗ 2015. 12. 21. 00:36
728x90


ZipCodeMain.java 

  1. package test.com.zipcode;
  2.  
  3. import java.sql.CallableStatement;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. public class ZipCodeMain {
  10.  
  11.     public static final String DRIVER_NAME = "oracle.jdbc.driver.OracleDriver";
  12.     public static final String URL = "jdbc:oracle:thin:@localhost:1521:javagroup";
  13.     public static final String USER_ID = "java_project";
  14.     public static final String USER_PWD = "hi123456";
  15.    
  16.     public Connection getConn() {
  17.             Connection con = null;
  18.            
  19.             try {
  20.                 Class.forName(DRIVER_NAME);
  21.                 con = DriverManager.getConnection(URL, USER_ID, USER_PWD);
  22.                
  23.             } catch (ClassNotFoundException e) {
  24.                 // TODO Auto-generated catch block
  25.                 e.printStackTrace();
  26.             } catch (SQLException e) {
  27.                 // TODO Auto-generated catch block
  28.                 e.printStackTrace();
  29.             }
  30.            
  31.         return con;
  32.     }
  33.    
  34.     public static void main(String[] args) {
  35.         // TODO Auto-generated method stub
  36.        
  37.         ZipCodeMain zm = new ZipCodeMain();
  38.        
  39.         ZipCodeDAO dao = new ZipCodeDAOImpl();
  40.         ZipcodeVO vo = new ZipcodeVO();
  41.        
  42.         String addr_String = "영등동";
  43.         int addr_cnt = 0;
  44.        
  45.         Connection con = zm.getConn();
  46.         ResultSet rs = null;
  47.         ResultSet rs1 = null;
  48.         CallableStatement statement = null;
  49.        
  50.         try {
  51.             String sql = "call UP_ZIPCODE_SEARCH(?, ?, ?)";
  52.             statement = con.prepareCall(sql);
  53.             statement.setString(1, addr_String);
  54.             statement.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
  55.             statement.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
  56.             statement.execute();
  57.            
  58.             rs = (ResultSet) statement.getObject(2);
  59.            
  60.             while(rs.next()) {
  61.                 System.out.print(rs.getInt("zipcode") + " ");
  62.                 System.out.print(rs.getString("sido") + " ");
  63.                 System.out.print(rs.getString("sigungu") + " ");
  64.                 System.out.println(rs.getString("b_dong_name"));
  65.             }
  66.            
  67.             System.out.println("결과물수 : " + statement.getInt(3));
  68.            
  69.         } catch (SQLException e) {
  70.             // TODO Auto-generated catch block
  71.             e.printStackTrace();
  72.         }
  73.        
  74.        
  75.        
  76.        
  77.  
  78.     }
  79.  
  80. }




ZipCodeDAO.java

  1. package test.com.zipcode;
  2.  
  3. import java.util.List;
  4.  
  5. public interface ZipCodeDAO {
  6.    
  7.     public List<ZipcodeVO> search();
  8.    
  9. }



ZipCodeDAOImpl.java
 
  1. package test.com.zipcode;
  2.  
  3. import java.util.List;
  4.  
  5. public class ZipCodeDAOImpl implements ZipCodeDAO {
  6.  
  7.     @Override
  8.     public List<ZipcodeVO> search() {
  9.         // TODO Auto-generated method stub
  10.         return null;
  11.     }
  12.  
  13. }




ZipcodeVO.java


  1. package test.com.zipcode;
  2.  
  3. public class ZipcodeVO {
  4.     String search;
  5.     String addr;
  6.  
  7.     int zipcode;
  8.  
  9.     public String getSearch() {
  10.         return search;
  11.     }
  12.  
  13.     public void setSearch(String search) {
  14.         this.search = search;
  15.     }
  16.  
  17.     public String getAddr() {
  18.         return addr;
  19.     }
  20.  
  21.     public void setAddr(String addr) {
  22.         this.addr = addr;
  23.     }
  24.  
  25.     public int getZipcode() {
  26.         return zipcode;
  27.     }
  28.  
  29.     public void setZipcode(int zipcode) {
  30.         this.zipcode = zipcode;
  31.     }
  32.  
  33. }



DB설정


패키지 생성

  1. CREATE OR REPLACE PACKAGE ZIPCODE_PKG AS
  2.  
  3.   /* TODO enter package declarations (types, exceptions, methods etc) here */
  4.   type RSLIST IS ref cursor;
  5.  
  6. END ZIPCODE_PKG;



프로시저 생성

  1. CREATE OR REPLACE PROCEDURE UP_ZIPCODE_SEARCH
  2. (
  3.   ADDR IN VARCHAR2,
  4.   LIST OUT ZIPCODE_PKG.RSLIST,
  5.   CNT OUT NUMBER
  6. ) AS
  7. BEGIN
  8.  
  9.   --전체 검색 데이터 count
  10.   SELECT count(zseq) INTO CNT FROM zipcode WHERE B_dong_name LIKE '%'|| ADDR ||'%';
  11.  
  12.   --검색 ResultSet 커서에 담기
  13.   OPEN LIST FOR
  14.   SELECT zipcode, sido, sigungu, b_dong_name FROM ZIPCODE WHERE B_DONG_NAME LIKE '%'|| ADDR ||'%';
  15.  
  16. END UP_ZIPCODE_SEARCH;


728x90