728x90
SMALL
<Ex_Delete>
package Ex01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Ex_Delete {
public static void main(String[] args) {
// 삭제 하고자 하는 이름과 동일한 이름을 가지고 있는
// 데이터 삭제하기
// ex) 김미희 입력시 -> 해당 데이터 삭제!
Connection conn = null;
PreparedStatement psmt = null;
Scanner sc = new Scanner(System.in);
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String db_id = "hr";
String db_pw = "hr";
conn = DriverManager.getConnection(url,db_id, db_pw);
if(conn != null) {
System.out.println("접송 성공");
}else {
System.out.println("접송 실패");
}
System.out.print("삭제 할 이름 : ");
String name = sc.next();
// 입력한 이름과 동일한 데이터 삭제하는 sql 문장입력하기
String sql = "delete from student where name = ?";
psmt = conn.prepareStatement(sql);
//?에 해당하는 데이터 연결하기
psmt.setString(1, name);
int result = psmt.executeUpdate();
if (result > 0) {
System.out.println("삭제 성공");
} else {
System.out.println("삭제 실패");
}
} catch (Exception e) {
System.out.println("오류 발생!");
}
finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
<Ex_insert>
package Ex01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Ex_Insert {
public static void main(String[] args) {
// 객체 생성
Connection conn = null;
PreparedStatement psmt = null;
Scanner sc = new Scanner(System.in);
try {
// 1. jdbc 동적 로딩!
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2.데이터베이스 연결!
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String db_id = "hr";
String db_pw = "hr";
conn = DriverManager.getConnection(url, db_id, db_pw);
if (conn != null) {
System.out.println("접속 성공!");
} else {
System.out.println("접속 실패");
}
// 3. sql 전송
// '강예진', 20, '여성' -> insert 문장 구현!
System.out.print("이름 : ");
String name = sc.next();
System.out.print("나이 : ");
int age = sc.nextInt();
System.out.print("성별 : ");
String gender = sc.next();
String sql = "insert into student values(?, ?, ?)";
psmt = conn.prepareStatement(sql);
//?값에 실제 값들이 연결될 수 있도록 만들어 주기
//set(위치, 데이터 값) -> 위치는 1부터 시작한다!
psmt.setString(1, name);
psmt.setInt(2, age);
psmt.setString(3, gender);
// prepareStatement의 사용함수!
// - Query() : 테이블의 전후가 바뀌는 작업 수행시 '조회'
// - Update() : 테이블의 전후가 수정되는 작업 수행시 '삽입' , '수정', '삭제'
int result = psmt.executeUpdate();
if (result > 0) {
System.out.println("삽입 성공");
} else {
System.out.println("삽입 실패");
}
} catch (ClassNotFoundException e) {
System.out.println("드라이버 연결 오류");
} catch (SQLException e) {
System.out.println("데이터베이스 오류");
}
// 4. 객체 연결 종료
finally {// 마지막에 무조건 수행할 수 있는 키워드
// 객체 닫는 순서? 역순으로...
// Connection(conn) <- PreparedStatement(psmt) <- ResultSet(rs)
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
<Ex_Select>
package Ex01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Ex_Select {
public static void main(String[] args) {
//JDBC 연결순서
//0. (선행작업) 프로젝트에 ojdbc6.jar 파일 연결
//1. JDBC 드라이버 연결
//2. 데이터베이스 연결
//3. SQL문 작성 및 전송
//4. 객체 연결 종료
//객체 생성 및 선언
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
//try: 예외 처리를 진행 할 수 있는 구문!
//catch : try 실행시 발생하는 오류를 catch문을 통해 해결할 수 있다
try {
//1. JDBC 드라이버 연결
//Class.forName(): 드라이버 연결에 필요한 클래스 찾아오기!
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. 데이터베이스 연결 -> Connection 객체 필요!
// 데이터 베이스에 연결하기 위한 필요 정보! (DB주소, 아이디, 비밀번호)
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String db_id ="hr";
String db_pw = "hr";
conn = DriverManager.getConnection(url, db_id, db_pw);
//접속이 잘 됐는지 판단하기
if(conn !=null) {
System.out.println("접속 성공!");
}else {
System.out.println("접속 실패");
}
//3. SQL 작성 및 전송 -> PreparedStatement
String sql = "select * from student";
psmt = conn.prepareStatement(sql);
//sql 문장 전송 작업필요!
// ResultSet -> select sql문 실행시 돌아오면 테이블 형태를
// 담을 수 있는 객체!
rs = psmt.executeQuery();
while(rs.next()) {
//String name = rs.getString("name");
String name = rs.getString(1); //->숫자는 컬럼 번호를 뜻한다
int age = rs.getInt(2);
String gender = rs.getString(3);
//하나의 행에 대하여 다 가져온 후 한번에 출력하기
System.out.println(name + " / "+ age + " / "+ gender);
}
} catch (ClassNotFoundException e) {
System.out.println("드라이버 연결 오류");
} catch (SQLException e) {
System.out.println("데이터베이스 연결 오류");
}
//4. 객체 연결 종료
finally {//마지막에 무조건 수행할 수 있는 키워드
//객체 닫는 순서? 역순으로...
// Connection(conn) <- PreparedStatement(psmt) <- ResultSet(rs)
try {
if(rs != null) {
//객체사용 여부 확인
rs.close();
}if(psmt !=null) {
psmt.close();
}if(conn !=null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package Ex01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Ex_Update {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement psmt = null;
Scanner sc = new Scanner(System.in);
// 1. 동적로딩 -> Class.forName()
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String db_id = "hr";
String db_pw = "hr";
conn = DriverManager.getConnection(url, db_id, db_pw);
if (conn != null) {
System.out.println("접속 성공");
} else {
System.out.println("접속 실패");
}
System.out.println("수정할 내용 선택 : [1]이름 [2]나이 [3]성별");
int menu = sc.nextInt();
String sql = "";
if(menu==1) {
sql="";
psmt = conn.prepareStatement(sql);
}else if(menu==2) {
System.out.print("변경 할 이름 : ");
String name = sc.next();
System.out.print("변경 될 나이: ");
int age =sc.nextInt();
// '채수민'과 같은 이름의 age에 대하여 25값으로 수정하는 sql문구 작성
sql = "Update student set age=? where name=?";
psmt = conn.prepareStatement(sql);
//?에 해당하는 데이터 연결하기
psmt.setInt(1,age);
psmt.setString(2, name);
}else if(menu==3) {
sql="";
psmt = conn.prepareStatement(sql);
}
//name, age, gender
int result = psmt.executeUpdate();
if (result > 0) {
System.out.println("수정 성공");
} else {
System.out.println("수정 실패");
}
} catch (Exception e) {
System.out.println("오류 발생!");
}
finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
<sql_student.sql>
select * from student;
insert into student values('김동원', 30, '남성');
/* 실행 단축키: 해당문 드레그 후 alt+x */
728x90
LIST
'Full Stack 교육 회고록' 카테고리의 다른 글
9/13- HTML(기초,태그)-정리완료 / javascript(연사자,자료형,입출력,변수) (1) | 2022.09.13 |
---|---|
8/31 자바 멀티캐스킹, 채팅프로그램 (0) | 2022.08.31 |
8/29 [java] - jdbc,mvc (0) | 2022.08.29 |
8/26 [자바]- 피보나치 수열, 버블정렬, 선택정렬, 이진탐색, 인터페이스 (0) | 2022.08.26 |
8/25 [자바 자료구조]- 트리 [자바]- 인터페이스 (0) | 2022.08.25 |