2019. 6. 20. 19:05ㆍJava
package jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class MainInsert {
public static void main(String[] args) {
// 1. 드라이브 로딩
// 2. 커넥션 객체 생성
// 3. SQL 준비
// 4. 실행
// 5. 연결 종료 : 종료를 하지않으면 실행할때마다 실행객체가 생기고 또 생기고 또 생기고.. 컴퓨터가 힘들어함.
//1. 드라이브 로딩
Connection conn = null;
// Connection이란 무엇인지 궁금해할 수도 있지만 그것은 "캡슐"을 까서 약재 가루를 한알 한알 분석하려고 드는 꼴이니 그냥 느낌만 알고 넘어가기로 한다.
PreparedStatement psmt = null;
// sql문 전송하는 객체인 PreparedStatement
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String password = "hr";
//상기 3가지 내용만 바꾸면 어느 DB에서도 활용할 수 있다고 한다.
try {
// 클래스 명을 몰라도 클래스명.forName("드라이버 주소")를 입력하면 알 수 있다.
Class.forName("oracle.jdbc.driver.OracleDriver");
// try 블록 안의 코드들이 실행중에 오류가 난다면, catch 블록에서 그 오류를 잡을 수 있다.
// 2. 객체생성
conn = DriverManager.getConnection(url, user, password);
// Connection 객체를 연결
// 3 sql 준비
String sql = "insert into membership values(?,?,?,?)";
// membership 안에 values 데이터를 집어넣는다는 뜻
psmt = conn.prepareStatement(sql);
// 괄호 안에 실행시키고 싶은 sql문 넣기. 상기의 sql 문이 psmt 라는 객체로 만들어졌다.
psmt.setString(1, "hhd"); // 몇번째 물음표에 어떤 값을 넣을 것인지 쓰는 것이다.
psmt.setString(2, "1234");
psmt.setString(3, "김멍충");
psmt.setInt(4, 1);
// 4 실행
int row = psmt.executeUpdate();
// select 할때는 executeQuery, 업데이트&인서트&딜리트는 executeUpdate를 쓴다.
System.out.println("DB에서 변화가 반영된 ROW 수 :" + row);
} catch (ClassNotFoundException e) { // ClassNotFoundException 클래스를 찾을 수 없을 때
// catch 블록에는 에러 발생시 사후 작업 코드를 입력한다.
e.printStackTrace();
} catch (SQLException e) {
//
e.printStackTrace();
}
// 5. 종료
finally {
try {
if (psmt != null)
psmt.close(); // psmt 가 열려있다면 닫아라.
if (conn != null)
conn.close(); // conn이 열려있다면 닫아라.
} catch (Exception e2) {
}
}
// try를 실행하다가 오류가 나면 오류지점 밑으로는 아예 실행이 안된다. 그래서 연결 종료가 안된다. 그래서 맨 마지막 finally 문에 연결종료 코드를 써준다.
// 연결을 닫을때는 가장 최근에 만들어진 것부터 닫아야 한다.
}
}
'Java' 카테고리의 다른 글
자바 쓰레드 (0) | 2019.07.01 |
---|---|
오버로딩과 오버라이딩에 대한 짧은 설명 (0) | 2019.07.01 |
자바의 4가지 접근지정자 (0) | 2019.06.21 |
자바 생성자, 메소드, 클래스에 대한 짧은 내용 (0) | 2019.06.19 |
자바 자료형(데이터타입) (2) | 2019.05.15 |