728x90
반응형
String id ="t";
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",
"kh", "kh");
//String sql = "select * from member where member_id like '%'||?||'%'";
//String sql = "select * from member where instr(member_id , ?) >0";
String sql = "select * from member where regexp_like(member_id ,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setNString(1, id);
ResultSet rs =ps.executeQuery();
while(rs.next()) {
System.out.print(rs.getString("member_id"));
System.out.print("/");
System.out.print(rs.getDate("member_birth"));
System.out.print("/");
System.out.print(rs.getString("member_email"));
System.out.print("/");
System.out.print(rs.getString("member_phone"));
System.out.print("/");
System.out.print(rs.getDate("member_join"));
System.out.print("/");
System.out.print(rs.getInt("member_point"));
System.out.print("/");
System.out.println(rs.getString("member_grade"));
}
con.close();
System.out.println("조회완료");
}
}
우리가 여기서 관심있게 볼 구문은
String sql = "select * from member where member_id like '%'||?||'%'";
String sql = "select * from member where instr(member_id , ?) >0";
String sql = "select * from member where regexp_like(member_id ,?)";
유사한 아이디가 있으면 찾아내라 / 유사한 내용이 있으면 찾아내라.
여기서 문제가되는 구문은
String sql = "select * from member where member_id like '%'||?||'%'";
여기서는 문자열을 합성해야한다 '%?%' 로 작성시 인덱스 오류발생 ★★
'[DBMS] > - Oracle' 카테고리의 다른 글
[Oracle] jdbc (Select 원하는 항목 검사 ) (0) | 2022.05.31 |
---|---|
[Oracle] jdbc , 단일조회 (0) | 2022.05.31 |
[Oracle]Select (0) | 2022.05.31 |
[Oracle]update (0) | 2022.05.31 |
[Oracle]delete기초 (0) | 2022.05.31 |
댓글