Scanner sc = new Scanner(System.in);
System.out.println("아이디를 입력하세요 >>");
String inputId = sc.next();
System.out.println("비번을 입력하세요 >>");
String inputPw = sc.next();
//1.동적로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.DB연결
String user = "service";// db 계정 유저이름
String password = "12345";
String url="jdbc:oracle:thin:@localhost:1521:xe";
Connection conn = DriverManager.getConnection(url,user,password);
//3.db연결 확인
if(conn != null) {
System.out.println("연결 성공");
}else {
System.out.println("연결 실패");
}
//sql문 통로 <- 4번
String sql = "select * from member where id = ? and pw = ?";
PreparedStatement psmt = conn.prepareStatement(sql);
//?채우기 <-- 통로와 실행 가운데에 채워넣어야함 <- 5번
psmt.setString(1, inputId); //첫번째 물음표에 뭘 채울거냐
psmt.setString(2, inputPw);
// executeQuery <-- select => resertset을 return한다.
ResultSet rs = psmt.executeQuery(); //6번
<- true 혹은 false -->
rs.next();
//while(rs.next()) { //7번 while 혹은 if 아무거나 선정가능
if(rs.next()) {//if쓴 이유 : id컬럼이 pk이다고 가정시 어차피 데이터 한개인데 굳이 반복문 돌려서 rs.next 두번할 필요없다.
String id = rs.getString(1);
String pw = rs.getString(2);
String name = rs.getString(3);
int age = rs.getInt(4);
System.out.println("id : " + id);
System.out.println("pw : " + pw);
System.out.println("name : " + name);
System.out.println("age : " + age);
}
}
그대신 밑에것으로 하려면 위에 아이디 비번을 지워주어야 한다.
그리고 이것은 한개씩 데이터를 가져온다.
executeQuery
1. 수행결과로 ResultSet 객체의 값을 반환합니다.
2. SELECT 구문을 수행할 때 사용되는 함수입니다.
ResultSet
1.executeQuery을 통해 쿼리 실행하면 ResultSet타입으로 반환을 해주어 결과값을 저장할 수 있다.
2.결과값을 저장할 수 있다.
3.저장된 값을 한 행 단위로 불러올 수 있다.
4.한 행에서 값을 가져올 때는 타입을 지정해 불러올 수 있다.
next()
1.메소드를 통해, 선택되는 행을 바꿀 수 있다.
2.다음행이 내려갈 다음행이 있을 경우 TRUE를 반환하고, 없을 경우 FALSE를 반환한다.
'Java' 카테고리의 다른 글
executrQuery 전체의 데이터 가져오기 (0) | 2023.10.01 |
---|---|
동적로딩 (0) | 2023.10.01 |
preparedStatement,executeUpdate,finally (2) | 2023.10.01 |
ojdbc 설정하기 (0) | 2023.10.01 |
런타임 에러 vs 컴파일 에러 (0) | 2023.10.01 |