// 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 |
