다연이네

[days03] PreparedStatement 사원 조회 본문

JDBC

[days03] PreparedStatement 사원 조회

 다연  2020. 11. 25. 22:57
반응형

1. emp테이블에서 사원 조회

package days03;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;

import com.util.DBConn;

import days02.EmpDTO;

public class Ex04_04 {

	public static void main(String[] args) {

		//emp테이블에서 사원 조회
		String searchWord = null;
		Scanner scanner = new Scanner(System.in);
		System.out.print(">조회할 사원명 입력(대문자로) ? ");
		searchWord = scanner.next();
		//사원명의 일부분만 입력받아서 모두 조회
		
		String sql = "SELECT * FROM emp "
				+" WHERE ename LIKE '%"+searchWord+"%' " ;
		
		
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		con = DBConn.getConnection();

		try {
			pstmt = con.prepareStatement(sql);
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				String ename= rs.getString("ename");//그냥 ename으로 검색
				System.out.println(ename.replace(searchWord, "["+searchWord+"]"));
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				rs.close();
				DBConn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
		}
		
		
		
		
		System.out.println("=END=");

	}//main

}//class

2. like 구문 사용해서 수정하기

package days03;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;

import com.util.DBConn;

import days02.EmpDTO;

public class Ex04_05 {

	public static void main(String[] args) {

		//emp테이블에서 사원 조회
		String searchWord = null;
		Scanner scanner = new Scanner(System.in);
		System.out.print(">조회할 사원명 입력 (대문자로) ? ");
		searchWord = scanner.next();
		//사원명의 일부분만 입력받아서 모두 조회

		 
		String sql = "SELECT * FROM emp "
			+" WHERE ename LIKE ?" ;
		
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		con = DBConn.getConnection();

		try {
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1,  "%"+searchWord+"%"); 
			//그냥 searchWord 주면 S 주면 아무것도 안뜨고 풀네임 줘야 뜸
			rs = pstmt.executeQuery();
			
			
			while(rs.next()) {
				String ename= rs.getString("ename");//그냥 ename으로 검색
				System.out.println(ename.replace(searchWord, "["+searchWord+"]"));
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				rs.close();
				DBConn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
		}
		
		
		
		
		System.out.println("=END=");

	}//main

}//class

3. REGEXP_LIKE로 수정

package days03;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;

import com.util.DBConn;

import days02.EmpDTO;

public class Ex04_06 {

	public static void main(String[] args) {

		//emp테이블에서 사원 조회
		String searchWord = null;
		Scanner scanner = new Scanner(System.in);
		System.out.print(">조회할 사원명 입력 ? ");
		searchWord = scanner.next();
		//사원명의 일부분만 입력받아서 모두 조회
		
		
		String sql = "SELECT * FROM emp "
				+" WHERE REGEXP_LIKE (ename ,  ?, 'i') " ; //이렇게 주면 밑에서 % 필요 없지
		//프로젝트시 정규표현식 사용하는 REGEXP_LIKE 사용하는게 젤 좋겠다
		
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		con = DBConn.getConnection();

		try {
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, searchWord); 
			rs = pstmt.executeQuery();
			
			
			while(rs.next()) {
				String ename= rs.getString("ename");//그냥 ename으로 검색
				System.out.println(ename.replace(searchWord, "["+searchWord+"]"));
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				pstmt.close();
				rs.close();
				DBConn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
		}

		
		System.out.println("=END=");

	}//main

}//class
반응형
Comments