IT/DB / / 2023. 4. 18. 17:58

DB - JAVA와 DB를 연동하여 프로그래밍하기 - update

반응형
package com.dao;

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

/*
 * 작업순서 
 * 1. Driver Loading
 *  -> 데이터베이스와 연결하는 드라이버 파일을 찾는다.
 *  -> 생성자에서 구현한다.
 *  
 * 2. Connection
 *  -> 연결을 관리하는 Connection 객체를 생성한다.
 * 
 * 3. SQL 작업처리
 *  -> 작업을 처리할 PreparedStatement 객체를 생성한다.
 *  -> update dbtest set age=age+1 where name like '%홍%';
 *  -> updateArticle() - 수정할 이름 입력 : 홍
 *  -> 홍이 들어가는 모든 레코드의 나이를 1살 증가
 *  
 * 4. 반환되는 결과는 int 변수에 담는다.
 * 
 * 5. 접속을 종료한다.
 */
class UpdateTest{
	//1. Driver Loading
	public UpdateTest(){
		try{
			//OracleDriver 클래스의 존재유무 검사
			//없으면 예외 발생, 즉  등록되어 있지 않으면 예외 발생
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("드라이버 등록 성공");
			
		}catch(ClassNotFoundException e){
			System.out.println("드라이버 등록 실패");
			e.printStackTrace();
		}
	}
	
	//2. Connection
	public Connection getConnection(){
		Connection conn = null;
		try {
			/*
			 * Oracle과 연동 -(1 : DB URL 2 : DB USER 3 : 패스워드)
			 * DB URL : SQLDEVELOPER -> 계정 속성 -> 접속세부정보
			 *  */
			
			//오라클과 연결
			conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",
					"jspexam2","m1234");
			System.out.println("접속 성공");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
	//3. SQL 작업처리
	public void UpdateArticle(){
		Scanner sc = new Scanner(System.in);
		System.out.println("수정할 이름 입력 : ");
		String name = sc.next();
		
		Connection conn = getConnection();
		PreparedStatement pstmt = null;
		int su = 0;
		
		try{
			String sql = "update dbtest set age=age+1 where name like ?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, "%"+name+"%");
			su = pstmt.executeUpdate();
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			try{
				if(pstmt != null) pstmt.close();
				if(conn != null) conn.close();
				if(sc != null) sc.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
		}
		System.out.println(su + "개 행이 수정되었습니다.");
	}
}
public class Exam4 {
	public static void main(String[] args) {
		UpdateTest ut = new UpdateTest();
		ut.UpdateArticle();
		
	}
}
 
결과 CONSOLE창

 

기존데이터

 

수정된 데이터

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유