JAVA

자바 JDBC

아이티프로 2023. 1. 24.
반응형

JDBC에서 CRUD를 구현을 위해 주로 사용하는 객체와 매소드를 한 포스팅에 요약하였다.

JDBC예제

 

JDBC

DriverManager - 드라이버관리자(db에 맞는 드라이버 로딩)

Connection  - DB연결 객체

Statement  쿼리 실행 객체

PreparedStatement  - 준비된 쿼리 실행 객체

ResultSet  쿼리 결과 집합 객체

 

package javaStudy;

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

public class JDBCExam {
	public static void main(String[] args) {
		Connection db;  
		Statement  st;
		try {
			Class.forName("org.postgresql.Driver");
			db = 
            DriverManager.getConnection("접속정보", "ID", "패스워드");
			st = db.createStatement();
			st.executeUpdate("drop table if exists basic");    
			st.executeUpdate("create table basic (a int2, b int2)");
			st.executeUpdate("insert into basic values (1,1)");
			st.executeUpdate("insert into basic values (2,1)");
			st.executeUpdate("insert into basic values (3,1)");
			st.executeUpdate("update basic set b=8");
			PreparedStatement ps = db.prepareStatement("insert into basic values (?,?)");
			for(int i=2;i<5;i++) {
				ps.setInt(1,4);      // "column a" = 5
				ps.setInt(2,i);      // "column b" = i
				ps.executeUpdate(); 
			}
			ps.close();                
			ResultSet rs = st.executeQuery("select a, b from basic");
			if(rs!=null) {
				while(rs.next()) {
					int a = rs.getInt("a");
					int b = rs.getInt(2); 
					System.out.println("a=" + a + ", b=" + b);
				}
				rs.close(); 
			}   
			st.executeUpdate("drop table if exists basic");   
			st.close();   
			db.close();
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
	}
}

 

Class.forName("org.postgresql.Driver"); 

JDBC드라이버를 로드하고
Connection db = DriverManager.getConnection("접속정보", "ID", "패스워드");

접속정보를 사용해 연결을 만들고
Statement  st = db.createStatement();

연결된 DB로 부터 Statement 객체 st를 생성
st.executeUpdate("drop table if exists basic");   

테이블이 있으면 삭제하고
st.executeUpdate("create table basic (a int2, b int2)");

테이블을 생성하고
st.executeUpdate("insert into basic values (1,1)");

데이터를 집어넣고
st.executeUpdate("insert into basic values (2,1)");
st.executeUpdate("insert into basic values (3,1)");

st.executeUpdate("update basic set b=8");

b=8인 레코드를 수정하고

 

PreparedStatement ps = db.prepareStatement("insert into basic values (?,?)");

`insert`문을 실행하는 PreparedStatement ps객체를 만들어서 파라미터 추가후 실행

ps.setInt(1,4); 
ps.setInt(2,1);  
ps.executeUpdate(); 


ResultSet rs = st.executeQuery("select a, b from basic");

 st 객체로부터 쿼리 실행후 결과셋 rs객체를 생성하고

while(rs.next()) {

     rs 객체가 next()일 때까지 읽어서
    int a = rs.getInt("a");

    필드명이 a인것을 가져오고
    int b = rs.getInt(2); 

    레코드의 컬럼인덱스가 2인것을 가져온다.
    System.out.println("a=" + a + ", b=" + b);
}

resultset의 컬럼인덱스는 1부터 시작한다.(배열인덱스는 0부터 시작)





반응형

'JAVA' 카테고리의 다른 글

자바 hashmap  (0) 2023.01.24
자바 파일입출력  (0) 2023.01.24
자바 쓰레드  (0) 2023.01.24
URLConnection객체 : 웹페이지 가져오기  (0) 2023.01.24
JAVA JSONObject  (0) 2023.01.23

댓글