JDBC(select)

밍숫가루·2024년 3월 27일
package main;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Main {

	public static void main(String[] args)throws Exception {
		System.out.println("====JDBC(select)=====");
		
		//JDBC 드라이버 로딩
		String driver="oracle.jdbc.driver.OracleDriver";	
		Class.forName(driver);
			
		//데이터베이스 연결 정보 준비
		String url="jdbc:oracle:thin:@localhost:1521:xe";
		String id="C##KH";
		String pwd="1234";
		
	      //데이터베이스 연결 == 커넥션 객체 얻기
		Connection conn=DriverManager.getConnection(url,id,pwd);
		
	      //SQL 준비
		String sql="SELECT * FROM MEMBER";//멤버테이블의 모든회원 조회 해보자		
        
        
	      //SQL 실행을 위한 statement 준비

				Statement stmt=conn.createStatement();
                
	     /*	statement 에 SQL 담아주고 실행 및 결과 리턴받기
			executeUpdate은 dml 실행할때 사용하는것.dql 사용할때는 다른거 써야함 
			왜냐하면 dml은 리턴타입이 int고 dql은 리턴타입이 결과 집합 */
            
			ResultSet rs=stmt.executeQuery(sql);
	      
          //결과 출력
			while(rs.next()) {															
			String id01=rs.getString("ID");
			String pwd01=rs.getString("PWD");
			String nick01=rs.getString("NICK");
			
			MemberVo mvo=new MemberVo(id01,pwd01,nick01);
			
			System.out.println(mvo);
		}

	      //사용한 자원 반납
	      // ~~~~~
	}

}

여러개의 ID,PWD,NICK을 받을거니까
클래스를 만들어줌.

package main;

public class MemberVo {

	private String id;
	private String pwd;
	private String nick;

	public MemberVo() {
		super();
		// TODO Auto-generated constructor stub
	}

	public MemberVo(String id, String pwd, String nick) {
		super();
		this.id = id;
		this.pwd = pwd;
		this.nick = nick;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	public String getNick() {
		return nick;
	}

	public void setNick(String nick) {
		this.nick = nick;
	}

	@Override
	public String toString() {
		return "Membervo [id=" + id + ", pwd=" + pwd + ", nick=" + nick + "]";
	}

}

rs.next() 메서드

Java에서 JDBC(Java Database Connectivity)를
사용하여 데이터베이스 결과 집합을 탐색할 때 사용되는 메서드.
이 메서드는 결과 집합(ResultSet)에서 다음 행으로 이동하고, 그 행이 존재하는지 여부를 확인합니다.

결과 집합에 다음 행이 있으면 true를 반환하고, 다음 행으로 이동합니다.
결과 집합에 더 이상 행이 없으면 false를 반환하고, 행의 위치는 변하지 않습니다.
이를 통해 개발자는 결과 집합의 모든 행을 반복하면서 데이터를 처리할 수 있습니다. 보통 while 루프와 함께 사용되며, 루프의 조건으로 rs.next()를 사용하여 결과 집합의 모든 행을 처리합니다.

getString()

Java의 JDBC(Java Database Connectivity)에서 사용되는 메서드 중 하나로, ResultSet 객체로부터 특정 열의 데이터를 문자열 형태로 가져오는 데 사용됩니다.


여기서 "columnName"은 가져올 열의 이름을 나타내며, value는 해당 열의 데이터를 문자열 형태로 담고 있는 변수입니다.

이 메서드는 다른 데이터 유형에 대한 형변환 없이 문자열 형태로 데이터를 가져올 때 주로 사용됩니다. 예를 들어, 문자열, 숫자, 날짜 등의 데이터를 가져올 수 있습니다. 그러나 주의할 점은, 만약 해당 열의 데이터 유형이 문자열이 아니라면, 데이터베이스에서 가져온 데이터를 문자열로 변환하여 반환하므로 데이터 타입에 맞는 형변환을 해야 합니다.

예를 들어, 만약 특정 열이 숫자 형식의 데이터를 갖고 있다면, 이를 getInt() 등의 메서드를 사용하여 숫자 형태로 가져와야 합니다.

profile
수인이야 ♡

0개의 댓글