본문 바로가기
기초 및 언어/▶ Java&JSP

38. SimpleJDBC (Select, Insert, Delete, Update)

by 류딩이 2025. 9. 1.

memo.txt

drop table test;

create table test(
	num number,
	name varchar2(10),
	addr varchar2(10)
	);

insert into test values(1, '윤아', '서울');
insert into test values(2, '아이유', '제주');
insert into test values(3, '웬디', '부산');
commit;

select * from test;	

[JDBC 프로그래밍 단계]
1. 드라이버 로드			
2. 계정 접속			
3. SQL문 작성 - 분석   
		3.1) ?자리에 값 채우기
4. SQL문 실행 		   
5. 데이터베이스 끊기

 

NUM  NAME  ADDR
1 윤아 서울
2 아이유 제주
3 웬디 부산

 

[JDBC 프로그래밍 단계]
1. 드라이버 로드
2. 계정 접속
3. SQL문 작성 - 분석
                3.1) ?자리에 값 채우기
4. SQL문 실행
5. 데이터베이스 끊기

 

 


1. Select문 작성

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

public class Ex07_select연습 {

	public static void main(String[] args) {
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		String id = "sqlid";
		String pw = "sqlpw";

		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;

		// 1. 드라이브 호출
		try {
			Class.forName(driver);

			// 2. 계정연결
			conn = DriverManager.getConnection(url, id, pw);

			// 3. SQL문 작성 - 분석
			String sql  = "Select * from test";
			ps = conn.prepareStatement(sql);

			// 4. sql문 실행
			rs = ps.executeQuery(sql);

			while(rs.next()) {
				// 한줄씩 접근
				int num = rs.getInt("num");
				String name = rs.getString("name");
				String addr = rs.getString("addr");
				System.out.println(num + "," + name + "," + addr);
			}

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {

			{
				try {
					if(conn != null) 
						conn.close();
					if(ps != null)
						ps.close();
					if(rs != null)
						rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

2. Insert문 작성

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

public class Ex08_insert연습 {

	public static void main(String[] args) {
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		String id = "sqlid" ;
		String pw = "sqlpw";

		Connection conn = null;
		PreparedStatement ps = null;
		// 1. 드라이브

		try {
			Class.forName(driver);
			// 2. 계정연결
			conn = DriverManager.getConnection(url, id, pw);
			// 3. sql 작성 - 분석
			int num = 5;
			String name = "태연";
			String addr = "경주";

			String sql = "insert into test (num, name, addr)values(?, ?, ?)";
			ps = conn.prepareStatement(sql);	
			ps.setInt(1, num);
			ps.setString(2, name);
			ps.setString(3, addr);

			int cnt = ps.executeUpdate();
			System.out.println("cnt : "+ cnt);
			System.out.println(num + " " + name + " " + addr);

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				if(conn != null)
					conn.close();
				if(ps != null)
					ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

	}

}

 


3. Insert문 작성

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

public class Delete {

	public static void main(String[] args) {
		Connection conn = null;
		PreparedStatement ps = null;
		
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		String id = "sqlid";
		String pw = "sqlpw";
		// 드라이브

			try {
				Class.forName(driver);
				conn = DriverManager.getConnection(url, id, pw);
				int num=30;
								
//				String sql = "delete from test where num=10";
				String sql = "delete from test where num=?";
				ps = conn.prepareStatement(sql);
				ps.setInt(1, num);
				
				int cnt = ps.executeUpdate();
				System.out.println("cnt :" + cnt);
				
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			} catch (SQLException e) {
				e.printStackTrace();
			}finally {
				if(ps!= null) {
					try {
						ps.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				
				if(conn != null) 
				{
					try {
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
				
			}
		
			
			
	


	}

}

4. Update문 작성

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

public class Update {

	public static void main(String[] args) {
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";
		String id = "sqlid";
		String pw = "sqlpw";
		
		int cnt = -1;
		Connection conn = null;
		PreparedStatement  ps = null;
		try {
			// 드라이버
			Class.forName(driver);
			// 계정접속
			conn = DriverManager.getConnection(url, id, pw);
			// sql 작성 분석
			int num = 30;
			String name = "현아";
			String addr = "광주";
			int conNum = 2; // 조건 : 2번을 바꿈
			
//			String sql = "update test set num=10, name='서현', addr='목포' where num=1";
//			String sql = "update test set num=" + num +
//		             ", name='" + name + "'" +
//		             ", addr='" + addr + "'" +
//		             " where num=" + conNum;
			
			String sql = "update test set num=?, name=?, addr=? where num=?";

			ps = conn.prepareStatement(sql);		
			ps.setInt(1, num);
			ps.setString(2, name);
			ps.setString(3, addr);
			ps.setInt(4, conNum);
			
			// sql문 실행
			cnt = ps.executeUpdate();
			System.out.println("cnt :" + cnt);
			// 수정성공 : 1
			// 조건 X : 0
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			if(conn != null)
			if(ps != null);{
				try {
					ps.close();
				} catch (SQLException e) {
					
					e.printStackTrace();
				}
			}
			if(conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		


	}

}

'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글

bread jdbc  (0) 2025.09.02
BookJDBC  (0) 2025.09.02
37. 문자 스트림 (FileReader / FileWriter / InputStreamReader)  (1) 2025.08.29
36. Buffer  (0) 2025.08.29
35. 바이트스트림  (0) 2025.08.26