티스토리 뷰

카테고리 없음

DB Connection

장꾸꾸 2020. 10. 23. 15:34

 

구성

 

 

package ex1;

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

public class DBConnection {
	Connection conn=null;
	
	public DBConnection() {		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver"); //1.드라이버 로드
			conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe", "edu", "1234");
			conn.setAutoCommit(false);  // 자동 커밋 해제
			// 2. Connection 연결객체 생성 /데이터베이스 커넥션에서 오른쪽 마우스 클릭, 프로퍼티에서 가져옴
//			System.out.println("OK");
		} catch (ClassNotFoundException e) { // 클래스명 체크
			e.printStackTrace();
		} catch (SQLException e) { // 
			e.printStackTrace();
		}
	}
	//----------
	public void dbClose() {
		try {
			if(conn != null) conn.close(); // 5번. 연결객체 해제
		}catch(SQLException e){}
	}
	public void insertSQL(String name, String phone, String addr) {
		PreparedStatement pstmt = null; // 3. 연결객체
		
		try {
			System.out.println("hi");
			String sql =  "INSERT INTO USERDB(NUM, NAME, PHONE, ADDR) VALUES(NUM_SEQ.NEXTVAL, ?, ?, ?)";

			// ctrl + shift + x -> 대문자 (소문자는 y) // 대문자로 써서 SQL 구문과 자바 구문 구별
			pstmt=conn.prepareStatement(sql); // conn과 pstmt 연결
			pstmt.setString(1, name);
			pstmt.setString(2, phone);
			pstmt.setString(3, addr);
			int n=pstmt.executeUpdate(); // 4. 결과 반환 
			
			if(n>0) { //결과가 성공으로 뜨면
			conn.commit();
				System.out.println(n + "건의 데이터를 추가했습니다");
			}
		}catch(SQLException e) {
			System.out.println("2222");
			e.printStackTrace();
			try {
				conn.rollback();
			}catch(SQLException e1){
				e1.printStackTrace();
			}
		}
		

	}
}




 

package ex1;

public class DBMain {
	public static void main(String[] args) {
		DBConnection ob=new DBConnection();
		
		int n = Integer.parseInt(args[0]);
		if(n==1) {
			ob.insertSQL("hong", "010-7777-7777", "제주");
		}
		ob.dbClose();
	}
}





ojdbc8.jar
3.85MB

 

 

 

위 파일 JRE System Library에 넣은 후 실행해야 함. 이렇게 하면 오라클과 자바를 연결해준 것.

 

 

** conn.setAutoCommit(false);  // 자동 커밋 해제 ** 나는 꼭 시작할 때 넣기

 

package ex1;

public class DBMain {
	public static void main(String[] args) {
		DBConnection ob=new DBConnection();
		
		int n = Integer.parseInt(args[0]);
		if(n==1) {
			ob.insertSQL("hong", "010-7777-7777", "제주");
		}else if(n==2) {
			ob.insertSQL2("min","010-8888-8888","강원");
		}
		ob.dbClose();
	}
}

 

package ex1;

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

public class DBConnection {
	Connection conn=null;
	
	public DBConnection() {		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver"); //1.드라이버 로드
			conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe", "edu", "1234");
			conn.setAutoCommit(false);  // 자동 커밋 해제
			// 2. Connection 연결객체 생성 /데이터베이스 커넥션에서 오른쪽 마우스 클릭, 프로퍼티에서 가져옴
//			System.out.println("OK");
		} catch (ClassNotFoundException e) { // 클래스명 체크
			e.printStackTrace();
		} catch (SQLException e) { // 
			e.printStackTrace();
		}
	}
	//----------추가하기1
	public void dbClose() {
		try {
			if(conn != null) conn.close(); // 5번. 연결객체 해제
		}catch(SQLException e){}
	}
	public void insertSQL(String name, String phone, String addr) {
		PreparedStatement pstmt = null; // 3. 연결객체
		
		try {
			System.out.println("hi");
			String sql =  "INSERT INTO USERDB(NUM, NAME, PHONE, ADDR) VALUES(NUM_SEQ.NEXTVAL, ?, ?, ?)";

			// ctrl + shift + x -> 대문자 (소문자는 y) // 대문자로 써서 SQL 구문과 자바 구문 구별
			pstmt=conn.prepareStatement(sql); // conn과 pstmt 연결
			pstmt.setString(1, name);
			pstmt.setString(2, phone);
			pstmt.setString(3, addr);
			int n=pstmt.executeUpdate(); // 4. 결과 반환 
			
			if(n>0) { //결과가 성공으로 뜨면
			conn.commit();
				System.out.println(n + "건의 데이터를 추가했습니다");
			}
		}catch(SQLException e) {
			System.out.println("2222");
			e.printStackTrace();
			try {
				conn.rollback();
			}catch(SQLException e1){
				e1.printStackTrace();
			}
		}finally {
			try {
				if(pstmt != null) pstmt.close(); // 5. 연결객체 해제
			}catch(SQLException e1){
				e1.printStackTrace();
			}
		}
	}
	//추가하기2---------------------------------------------------------
	public void insertSQL2(String name, String phone, String addr) {
		Statement stmt=null;  //3. SQL연결 객체
		
		try {
			String sql="INSERT INTO USERDB(NUM,NAME,PHONE,ADDR) VALUES(NUM_SEQ.NEXTVAL,'" 
		               + name +"','"+ phone +"','" + addr +"')";
//			System.out.println("SQL:" + sql);
			
			stmt=conn.createStatement();     // conn과 pstmt 연결
			int n=stmt.executeUpdate(sql);   // 4. 결과 반환 
			
			if(n > 0) {
				conn.commit();
				System.out.println(n + "건의 데이터를 추가 했습니다");
			}
			
		}catch(SQLException e) {
			e.printStackTrace();
			try {
				conn.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		}finally {
			try {
				if(stmt != null) stmt.close();   // 5.연결객체해제
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함