핫돌의 잡 지식 놓는 곳

언젠가 사용할지도 모르는 JSP ResultSet

핫돌 2024. 6. 26. 22:41
728x90
반응형

java.sql.ResultSet
SELECT 등의 조회 쿼리문을 실행한 후 돌아오는 조회 값을 포함하는 클래스
package에서name: test07 class를 하나 더 만든다.

그리고 test06의 코드를 모두 test07에 복사해 옵니다.

 

package com.goodjobedu.basic;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

 

public class test07 {

public static void main(String[] args) {

String id = "myJsp";

String password = "jsppassword";

String ur1 = "jdbc:oracle:thin:@localhost:1521:xe"; //Test01을만들었는데예전에만든DB

 

Connection con = null;

PreparedStatement ps = null;

 

 

try {

//커넥션준비

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(ur1, id, password);

 

String sql = "UPDATE student SET st_kr= 80";

ps = con.prepareStatement(sql);

int result = ps.executeUpdate();

System.out.println(result + "행에적용되었습니다.");

 

} catch(Exception e) {

e.printStackTrace();

} finally {

try {

if(ps != null){ps.close();}

if(con != null) {con.close();}

}catch(Exception e) {

e.printStackTrace();

}

}

}

}

//test06의 복사해온 test07소스코드.

//executeQuery이라는 객체를 통해 resultset의 객체를 받음.

package com.goodjobedu.basic;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

 

public class test07 {

public static void main(String[] args) {

String id = "myJsp";

String password = "jsppassword";

String ur1 = "jdbc:oracle:thin:@localhost:1521:xe"; //Test01을만들었는데예전에만든DB

 

Connection con = null;

PreparedStatement ps = null;

ResultSet rs = null;

 

try {

//커넥션준비

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(ur1, id, password);

 

String sql = "SELECT st_name, st_avg FROM student";

ps = con.prepareStatement(sql);

rs = ps.executeQuery();

 

boolean result = rs.next();//레코드가1개라도있으면true/ 없으면false

System.out.println();

 

} catch(Exception e) {

e.printStackTrace();

} finally {

try {

if(ps != null){ps.close();}

if(con != null) {con.close();}

}catch(Exception e) {

e.printStackTrace();

}

}

}

}

//소스코드

package com.goodjobedu.basic;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

 

public class test07 {

public static void main(String[] args) {

String id = "myJsp"

String password = "jsppassword"

String ur1 = "jdbc:oracle:thin:@localhost:1521:xe" //Test01을만들었는데예전에만든DB

 

Connection con = null

PreparedStatement ps = null

ResultSet rs = null

 

try {

//커넥션준비

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(ur1, id, password);

 

String sql = "SELECT st_name, st_avg FROM student"

ps = con.prepareStatement(sql);

rs = ps.executeQuery();

 

boolean result = rs.next();//레코드가1개라도있으면true/ 없으면false

String name

double avg

 

name = rs.getString("st_name");

avg = rs.getDouble("st_avg");

 

System.out.println(name + "/"+ avg + "");

 

} catch(Exception e) {

e.printStackTrace();

} finally {

try {

if(ps != null){ps.close();}

if(con != null) {con.close();}

}catch(Exception e) {

e.printStackTrace();

}

}

}

}

//소스코드

//아래 부분을 추가해서 만들었다면 일전에 만든 JJ의 점수가 0.0이라는 것을 알 수 있다.

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection(ur1, id, password);

 

String sql = "SELECT st_name, st_avg FROM student"

ps = con.prepareStatement(sql);

rs = ps.executeQuery();

 

boolean result = rs.next();//레코드가1개라도있으면true/ 없으면false

String name

double avg

 

name = rs.getString("st_name");

avg = rs.getDouble("st_avg");

 

System.out.println(name + "/"+ avg + "");

//추가된 소스코드

명령어:SELECT st_name, st_avg FROM student;

ST_AVG테이블 자체를 ResultSet이 가져와서 모두 가져와서 전달해 준다고 생각하면 쉽다.

//name = rs.getString("st_name");

avg = rs.getDouble("st_avg");

최초의 rs.next()는 맨 첫 번째 줄의 값을 알려준다고 생각하면 된다.

getString getDouble 얻어오겠다. 스트링 타입의 데이터를 얻어오겠다 getSrting st_name이 들어와있는데.st_name 항목의 값을 String에 갔다줘 라고 생각하면 쉽다.

현재 위치 레코드의 st_avg 항목의 값을 double형태로 갔다줘 라고 생각해도 된다.

ResultSet의 구조

>결과로 가져온 데이터는 Table형태와 흡사.

>ResultSetnext()를 사용하여 값이 있는지 없는지 확인.

>next()실행 후,get..()메소드를 사용하여 값을 얻어옴.

>여러 행이 있을 경우 반복문을 사용.

 

************* 컴퓨터 공학부가 모두 잘 되는 날이 왔으면 좋겠습니다. *************
*************틀린 부분이 있다면 말씀해주신다면. 정정 하도록 노력겠습니다. *************

 

728x90
반응형