yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

JDBC_02
~2023.02/DB(SQL)

JDBC_02

2022. 4. 29. 16:20

1. JDBC select


package sec02.exam01_statement;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBC_Select {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		Statement stmt = null;
		
		String sql, name, email, tel;
		int no;
		
		ResultSet rs = null;
		
		try {
			// 예외발생 가능 코드
			// 1. OracleDriver 객체를 생성
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			
			// 2. Connection 객체를 생성
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			
			// 인터페이스 변수 = 구현객체;
			// 3. Statement 객체를 생성
			stmt = con.createStatement();
			
			// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			
			// select문을 작성
			sql = "select * from customer";
			System.out.print("번호 \t 이름 \t\t 이메일 \t\t 전화번호\n");
			
			// 4. Statement 객체의 executeUpdate() 메소드로 sql문 실행
			rs = stmt.executeQuery(sql);
			
			while(rs.next()) {
				no = rs.getInt("no");
				name = rs.getString("name");
				email = rs.getString("email");
				tel = rs.getString("tel");
				System.out.printf(" %d \t %s \t %s \t %s \n", no, name, email, tel);
			}
			
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
			e.printStackTrace();
		} finally {
			// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
			try {
				if(stmt!=null) {
					stmt.close();
				}
				if(con!=null) {
					con.close();  // connection이 종료되면 auto commit 된다.
				}
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
		}
	}
}

  • List, Set, Map
    • List: 순서(인덱스), 데이터 중복 허용
    • Set: 순서 없음, 데이터 중복 허용x
    • Map: {Key:value}, key는 중복 허용x, value는 중복 허용

 

 

2. Prestatement


2-1. select

package sec02.exam02_prestatement;

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

public class JDBC_Select {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		//Statement stmt = null;
		PreparedStatement pstmt = null;
		
		String sql, name, email, tel;
		int no, cnt = 0;
		
		ResultSet rs = null;
		
		try {
			// 예외발생 가능 코드
			// 1. OracleDriver 객체를 생성
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			
			// 2. Connection 객체를 생성
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			
			// 인터페이스 변수 = 구현객체;
			// 3. Statement 객체를 생성
			//stmt = con.createStatement();
			sql = "select count(*) from customer";
			pstmt = con.prepareStatement(sql);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				cnt = rs.getInt(1);
				//cnt = rs.getInt("count(*)");
			}
			System.out.println("총 회원수: "+cnt);
			
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
			e.printStackTrace();
		} finally {
			// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
			try {
				if(pstmt!=null) {
					pstmt.close();
				}
				if(con!=null) {
					con.close();  // connection이 종료되면 auto commit 된다.
				}
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
		}
	}
}

2-2. insert

package sec02.exam02_prestatement;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBC_Insert {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		//Statement stmt = null;
		PreparedStatement pstmt = null;
		
		String sql, name, email, tel;
		int no, cnt = 0;
		
		ResultSet rs = null;
		
		try {
			// 예외발생 가능 코드
			// 1. OracleDriver 객체를 생성
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			
			// 2. Connection 객체를 생성
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			
			// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			
			System.out.println("customer 테이블에 값 입력하기...");
			System.out.print("번호 입력: ");
			no = Integer.parseInt(br.readLine());
			System.out.print("이름 입력: ");
			name = br.readLine();
			System.out.print("이메일 입력: ");
			email = br.readLine();
			System.out.print("전화번호 입력: ");
			tel = br.readLine();
			
			sql = "insert into customer (no, name, email, tel) values (?, ?, ?, ?)";
			pstmt = con.prepareStatement(sql);
			pstmt.setInt(1, no);
			pstmt.setString(2, name);
			pstmt.setString(3, email);
			pstmt.setString(4, tel);
			int result = pstmt.executeUpdate();
			
			if(result == 1) {
				System.out.println("데이터 입력 성공");
			} else {
				System.out.println("데이터 입력 실패");
			}
			
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
			e.printStackTrace();
		} finally {
			// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
			try {
				if(pstmt!=null) {
					pstmt.close();
				}
				if(con!=null) {
					con.close();  // connection이 종료되면 auto commit 된다.
				}
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
		}
	}

}
  sql문
statement // insert문을 작성
sql = "insert into customer(no, name, email, tel) values";
sql += "("+no+ ", '"+name+"', '"+email+"', '"+tel +"')";

// 4. Statement 객체의 executeUpdate() 메소드로 sql문 실행
int res = stmt.executeUpdate(sql);
if (res==1) {
System.out.println("Data insert success!");
} else {
System.out.println("Data insert failed!");
}
prestatement sql = "insert into customer (no, name, email, tel) values (?, ?, ?, ?)";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, no);
pstmt.setString(2, name);
pstmt.setString(3, email);
pstmt.setString(4, tel);

int result = pstmt.executeUpdate();

if(result == 1) {
System.out.println("데이터 입력 성공");
} else {
System.out.println("데이터 입력 실패");
}

2-3. update

package sec02.exam02_prestatement;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBC_Update {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		//Statement stmt = null;
		PreparedStatement pstmt = null;
		
		String sql, name, email, tel;
		int no, cnt = 0;
		
		ResultSet rs = null;
		
		try {
			// 예외발생 가능 코드
			// 1. OracleDriver 객체를 생성
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			
			// 2. Connection 객체를 생성
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			
			// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			
			System.out.println("customer 테이블에 값 수정하기...");
			System.out.print("번호 입력: ");
			no = Integer.parseInt(br.readLine());
			System.out.print("이름 입력: ");
			name = br.readLine();
			System.out.print("이메일 입력: ");
			email = br.readLine();
			System.out.print("전화번호 입력: ");
			tel = br.readLine();
			
			sql = "update customer set name=?, email=?, tel=? where no=?";
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, name);
			pstmt.setString(2, email);
			pstmt.setString(3, tel);
			pstmt.setInt(4, no);
			int result = pstmt.executeUpdate();
			
			if(result == 1) {
				System.out.println("데이터 입력 성공");
			} else {
				System.out.println("데이터 입력 실패");
			}
			
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
			e.printStackTrace();
		} finally {
			// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
			try {
				if(pstmt!=null) {
					pstmt.close();
				}
				if(con!=null) {
					con.close();  // connection이 종료되면 auto commit 된다.
				}
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
		}
	}
}

2-4. delete

package sec02.exam02_prestatement;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBC_Delete {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		//Statement stmt = null;
		PreparedStatement pstmt = null;
		
		String sql, name, email, tel;
		int no, cnt = 0;
		
		ResultSet rs = null;
		
		try {
			// 예외발생 가능 코드
			// 1. OracleDriver 객체를 생성
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			
			// 2. Connection 객체를 생성
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			
			// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			
			System.out.println("customer 테이블에 값 수정하기...");
			System.out.print("번호 입력: ");
			no = Integer.parseInt(br.readLine());
			
			sql = "delete from customer where no=?";
			pstmt = con.prepareStatement(sql);
			pstmt.setInt(1, no);
			int result = pstmt.executeUpdate();
			
			if(result == 1) {
				System.out.println("데이터 삭제 성공");
			} else {
				System.out.println("데이터 삭제 실패");
			}
			
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
			e.printStackTrace();
		} finally {
			// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
			try {
				if(pstmt!=null) {
					pstmt.close();
				}
				if(con!=null) {
					con.close();  // connection이 종료되면 auto commit 된다.
				}
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
		}
	}
}

 

'~2023.02 > DB(SQL)' 카테고리의 다른 글

서브 쿼리란? (SELECT절 서브 쿼리, FROM절 서브 쿼리, WHERE절 서브 쿼리)  (0) 2022.10.08
JDBC_01  (0) 2022.04.28
패키지  (0) 2022.04.15
커서와 트리거  (0) 2022.04.14
저장 프로시저와 저장 함수  (0) 2022.04.14
    '~2023.02/DB(SQL)' 카테고리의 다른 글
    • 서브 쿼리란? (SELECT절 서브 쿼리, FROM절 서브 쿼리, WHERE절 서브 쿼리)
    • JDBC_01
    • 패키지
    • 커서와 트리거
    yooniiverse
    yooniiverse

    티스토리툴바