[JAVA] Oracle 삽입, 삭제, 수정, 조회

2021. 5. 30. 15:34·Programming/JAVA

// DB 연결

try {
			// 1. 오라클드라이버 설치
			Class.forName("oracle.jdbc.driver.OracleDriver"); // 오라클 드라이버
			// Class.forName("com.mysql.cj.jdbc.Driver"); //mysql드라이버
			// ws에서 mr - 빌드패스 - ...

			// 2. 드라이버 매니저 연결
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost::XE", "", ""); // 오라클
			// 1521: 포트번호

			Statement stmt = conn.createStatement(); // 얘는 멤버로 해야 이 클래스의 다른 곳에서도 사용 가능
			// 데이터베이스와 연동. 데이터베이스로 SQL 문을 보내기 위한 SQLServerStatement 개체를 만듭니다.

		} catch (ClassNotFoundException e) {
			System.out.println("해당 드라이버가 없습니다.");
			e.printStackTrace(); // 어디서 오류가 발생했는지 알려줌

		} catch (SQLException e) {
			System.out.println("접속오류 / SQL 오류");
			// System.err.println("접속 오류 / sql 오류"); //위 sysout과 같음
			e.printStackTrace();
		}

 

// 데이터 삽입(Insert) - 내용 수정할 때 : executeUpdate

/String sql = "INSERT INTO MEMBER VALUES ('A005', '1111', '손흥민', 25)"; 
// 한번 실행하고나면 이미 들어가 있어서 또 실행하면 오류
// 위처럼 하면 복잡하므로
			
// 변수 따로 만들어서 넣어줌
String aa = "A009";
String bb = "888";
String cc = "최길동";
int dd = 35;

String sql = "INSERT INTO MEMBER VALUES ('" + aa + "', '" + bb + "', '" + cc + "', " + dd + ")"; 
stmt.executeUpdate(sql); //INSERT할때 컬럼 적거나 안적음 컬럼을 안적으면 다 순서에 맞게 넣어야 함

// 데이터 수정(UPDATE) - 내용 수정할 때 : executeUpdate

String sqlUpdate = "UPDATE MEMBER " + "SET PW='002', " + " NAME='박길동', " + "AGE=30 " + "WHERE ID='A009'";
// 업데이트는 실행 여러번 해도 오류안뜸

System.out.println(sqlUpdate);
stmt.executeUpdate(sqlUpdate); 

 

// 데이터 삭제(DELETE) - 내용 수정할 때 : executeUpdate

String deleteSql = 	"DELETE FROM MEMBER "+ "WHERE ID='A006'";
System.out.println(deleteSql);
stmt.executeUpdate(deleteSql);
			
// 옵션팬에 입력받아서 삭제
String delId = JOptionPane.showInputDialog("지우고 싶은 ID");
String deleteSql = 	"DELETE FROM MEMBER "+ "WHERE ID= '" + delId  + "'";
System.out.println(deleteSql);
stmt.executeUpdate(deleteSql);

 

// 데이터 검색 - 내용 조회 : executeQuery

ResultSet rs = stmt.executeQuery("SELECT *FROM member WHERE id='A005'"); 
// id가 A005인것만 보여줄 때

// 찾고 싶은 ID 옵션팬으로 검색
String findId = JOptionPane.showInputDialog("찾고 싶은 ID");
ResultSet rs = stmt.executeQuery("SELECT *FROM member WHERE id ='" + findId + "'"); 
// 변수를 문자열에 넣을 때 주의
			
ResultSet rs = stmt.executeQuery("SELECT *FROM member"); 
// 여러개의 결과물 가져올때는 executeQuery
// 쿼리 넘기기 대소문자는 상관없음 주로 키워드만 대문자.
			
while (rs.next()) { // 다음 내용이 있는지 없는지 확인
	String id = rs.getString("ID"); // 아이디 가져옴
	String pw = rs.getString("pw"); // 대소문자 상관없음
	String name = rs.getString(3); // 인덱스로 가져오기 DB의 인덱스 시작은 0이 아닌 1!!!!!!!!
	int age = rs.getInt("age"); // "age"안 넣고 인덱스로 4넣어도 됨

	System.out.println(id + "\t" + pw + "\t" + name + "\t" + age);
}

 

[ 예제 ]

//이 파일만 UTF-8
package db;

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

import javax.swing.JOptionPane;

public class DB_Connect {

	public static void main(String[] args) {
		try {
			// 1. 오라클드라이버 설치
			Class.forName("oracle.jdbc.driver.OracleDriver"); // 오라클 드라이버
			// Class.forName("com.mysql.cj.jdbc.Driver"); //mysql드라이버
			// ws에서 mr - 빌드패스 - ...

			// 2. 드라이버 매니저 연결
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost::XE", "", ""); // 오라클
			// 1521: 포트번호

			Statement stmt = conn.createStatement(); // 얘는 멤버로 해야 이 클래스의 다른 곳에서도 사용 가능
			// 데이터베이스와 연동. 데이터베이스로 SQL 문을 보내기 위한 SQLServerStatement 개체를 만듭니다.

			// 데이터 삽입(Insert) - 내용 수정할 때 : executeUpdate
			// String sql = "INSERT INTO MEMBER VALUES ('A005', '1111', '손흥민', 25)"; 
			// 한번 실행하고나면 이미 들어가 있어서 또 실행하면 오류
			
			// 위 코드처럼 하면 복잡하므로 변수 따로 만들어서 넣어줌			
//		    String aa = "A009";
//			String bb = "888";
//			String cc = "최길동";
//			int dd = 35;
//			String sql = "INSERT INTO MEMBER VALUES ('" + aa + "', '" + bb + "', '" + cc + "', " + dd + ")"; 
//			stmt.executeUpdate(sql); //INSERT할때 컬럼 적거나 안적음 컬럼을 안적으면 다 순서에 맞게 넣어야 함
			// System.out.println(stmt);

			// 데이터 수정(UPDATE) - 내용 수정할 때 : executeUpdate
			String sqlUpdate = "UPDATE MEMBER " + "SET PW='002', " + " NAME='박길동', " + "AGE=30 " + "WHERE ID='A009'";
			// 업데이트는 실행 여러번 해도 오류안뜸

			System.out.println(sqlUpdate);
			stmt.executeUpdate(sqlUpdate); 
			
			// 데이터 삭제
//			String deleteSql = 	"DELETE FROM MEMBER "+ "WHERE ID='A006'";
//			System.out.println(deleteSql);
//			stmt.executeUpdate(deleteSql);
			
			// 입력받아서 삭제
//			String delId = JOptionPane.showInputDialog("지우고 싶은 ID");
//			String deleteSql = 	"DELETE FROM MEMBER "+ "WHERE ID= '" + delId  + "'";
//			System.out.println(deleteSql);
//			stmt.executeUpdate(deleteSql);
			
			// 데이터 검색 - 내용 조회 : executeQuery
			//ResultSet rs = stmt.executeQuery("SELECT *FROM member WHERE id='A005'"); // id가 A005인것만 보여줄 때
			
			//String findId = JOptionPane.showInputDialog("찾고 싶은 ID");
			//ResultSet rs = stmt.executeQuery("SELECT *FROM member WHERE id ='" + findId + "'"); // 변수를 문자열에 넣을려면 
			
			ResultSet rs = stmt.executeQuery("SELECT *FROM member"); // 여러개의 결과물 가져올때는 executeQuery
			// 쿼리 넘기기 대소문자는 상관없음 주로 키워드만 대문자.
			
			while (rs.next()) { // 다음 내용이 있는지 없는지 확인
				String id = rs.getString("ID"); // 아이디 가져옴
				String pw = rs.getString("pw"); // 대소문자 상관없음
				String name = rs.getString(3); // 인덱스로 가져오기 DB의 인덱스 시작은 0이 아닌 1!!!!!!!!
				int age = rs.getInt("age"); // "age"안 넣고 인덱스로 4넣어도 됨

				System.out.println(id + "\t" + pw + "\t" + name + "\t" + age);
			}

			System.out.println("성공");

		} catch (ClassNotFoundException e) {
			System.out.println("해당 드라이버가 없습니다.");
			e.printStackTrace(); // 어디서 오류가 발생했는지 알려줌

		} catch (SQLException e) {
			System.out.println("접속오류 / SQL 오류");
			// System.err.println("접속 오류 / sql 오류"); //위 sysout과 같음
			e.printStackTrace();
		}
	}
}

'Programming > JAVA' 카테고리의 다른 글

[JAVA] URL, 서버, 클라이언트  (0) 2021.05.31
[JAVA] DB메소드, 로그인 창  (0) 2021.05.30
[JAVA] 이미지아이콘 크기 조절  (0) 2021.05.21
[JAVA] JDBC 연동 방법  (0) 2021.05.16
[JAVA] 라이브러리포함 - maven 사용방법  (0) 2021.05.15
'Programming/JAVA' 카테고리의 다른 글
  • [JAVA] URL, 서버, 클라이언트
  • [JAVA] DB메소드, 로그인 창
  • [JAVA] 이미지아이콘 크기 조절
  • [JAVA] JDBC 연동 방법
min_sol
min_sol
  • min_sol
    비글개발연구소🐾
    min_sol
  • 전체
    오늘
    어제
    • 분류 전체보기 (278)
      • Programming (128)
        • Algorithm (52)
        • JAVA (40)
        • GIS (5)
        • PyQt (10)
        • C# (11)
        • Mobile (6)
        • AI (4)
      • Backend (36)
        • Spring (14)
        • JSP (11)
        • Network (5)
      • Frontend (29)
        • React (11)
        • Vue (13)
        • Next.js (4)
      • Database (10)
        • PostgreSQL (1)
        • Oracle (8)
        • Elasticsearch (1)
      • DevOps (8)
        • Linux (7)
        • Mac (1)
      • Tools (31)
        • IntelliJ (1)
        • GitHub (10)
        • RPA (20)
      • Security (9)
      • etc (21)
        • ERROR (5)
        • 세미나 | 교육 (10)
        • 자격증 (1)
        • 일상 (2)
        • 2021 (2)
  • 인기 글

  • 태그

    Java
    자동화
    spring
    생능출판
    연습문제
    PyQt
    계산기
    알고리즘
    PyQt5
    자료구조
    자바
    vue.js
    RPA
    이클립스
    명품자바에센셜
    코딩테스트
    jsp
    VUE
    스윙
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
min_sol
[JAVA] Oracle 삽입, 삭제, 수정, 조회
상단으로

티스토리툴바