✅ Statement
String sql = "SELECT * FROM MEMBER WHERE MEMBER_ID = '"+변수명+"'";
✅ PreparedStatement
?
를 통해서 파라미터 바인딩이 가능하다 -> SQL Injection
공격 예방이 가능String sql = "SELECT * FROM MEMBER WHERE MEMBER_ID=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,id);
.....
.....
// Like 연산자가 들어갈 경우
String sql = "SELECT * FROM MEMBER WHERE MEMBER_NAME LIKE ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+name+"%"); // 해당하는 기호는 문자열로 인식해서 합쳐야한다
String sql = "INSERT INTO MEMBER VALUES(?,?,?,?,?,?,?,?,?,SYSDATE)";
// 9개의 외부값 다 넣어야한다!
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,m.getMemberId());
pstmt.setString(2, m.getMemberPwd());
pstmt.setString(3, m.getMemberName());
pstmt.setString(4, String.valueOf(m.getGender())); // 기본자료형에서 String으로 변환시킬때 사용
pstmt.setInt(5, m.getAge());
pstmt.setString(6, m.getEmail());
pstmt.setString(7, m.getPhone());
pstmt.setString(8, m.getAddress());
pstmt.setString(9, String.join(",",m.getHobby())); // ,를 기준으로 합쳐줌
rs = pstmt.executeQuery(sql);