package db.demo1;

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

public class DeleteDemo {

	public static void main(String[] args) throws Exception {
		String sql = "delete from user_contacts where user_name = ?";
		
		Class.forName("oracle.jdbc.OracleDriver");
		Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "zxcv1234");
		
		PreparedStatement pstmt = connection.prepareStatement(sql);
		pstmt.setString(1, "ㅁ마ㅁㅁ마");
		int rowCount = pstmt.executeUpdate();
		System.out.println(rowCount + "개의 행이 삭제되었습니다.");
		
		pstmt.close();
		connection.close();
	}
}

 

package db.demo1;

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

public class InsertDemo1 {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("주소록 등록 프로그램");
		
		System.out.println("순번입력> ");
		int no = scanner.nextInt();
		System.out.println("이름입력> ");
		String name = scanner.next();
		System.out.println("연락처입력> ");
		String phone = scanner.next();
		
		// 1. JDBC 드라이버 메모리 로딩
		Class.forName("oracle.jdbc.OracleDriver");
		
		// 2. Database와 연결을 유지하는 Connection 객체 획득하기
		String url1 = "jdbc:oracle:thin:@localhost:1521:xe";
		String user = "hr";
		String password = "zxcv1234";
		Connection connection = DriverManager.getConnection(url1, user, password);
		
		// 3. 실행할 쿼리 정의
		String sql = "insert into user_contacts"
				+ "(user_no, user_name, user_phone, user_create_date)"
				+ "values"
				+ "(?, ?, ?, sysdate)";
		
		// 4. 쿼리를 데이터베이스로 전송하는 PreparedStatement 객체 획득하기
		PreparedStatement pstmt = connection.prepareStatement(sql);
		
		// 5. PreparedStatement의 setXXX(인덱스, 값) 메소드를 사용해서 ?와 치환될 값 설정하기
		pstmt.setInt(1, no);
		pstmt.setString(2, name);
		pstmt.setString(3, phone);
		
		// 6. 쿼리 실행
		int rowCount = pstmt.executeUpdate();
		System.out.println(rowCount + "개의 행이 추가되었습니다.");
		
		// 7. 자원 해제 (필수!, 자원 해제는 역순으로!)
		pstmt.close();
		connection.close();
		
	}
}

 

package db.demo1;

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

public class SelectDemo {

	public static void main(String[] args) throws Exception {
		String sql = "select * from user_contacts";
		
		Class.forName("oracle.jdbc.OracleDriver");
		Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "zxcv1234");
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs= pstmt.executeQuery();

		while (rs.next()) {
			int no = rs.getInt("user_no");
			String name = rs.getString("user_name");
			String phone = rs.getString("user_phone");
			
			System.out.println(no + ", " + name + ", " + phone);
			
		}
		rs.close();
		pstmt.close();
		conn.close();
	}
}

 

package db.demo1;

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

public class UpdateDemo {

	public static void main(String[] args) throws Exception {
		String sql = "update user_contacts "
				+ "set "
				+ "user_name = ?, "
				+ "user_phone = ? "
				+ "where user_no = ? ";
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("수정할 사용자 번호 입력> ");
		int no = scanner.nextInt();
		System.out.println("새 이름 입력> ");
		String name = scanner.next();
		System.out.println("새 연락처 입력> ");
		String phone = scanner.next();
		
		Class.forName("oracle.jdbc.OracleDriver");
		Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "zxcv1234");
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, name);
		pstmt.setString(2, phone);
		pstmt.setInt(3, no); // 3은 열 번호. 5 입력시 부적절한 인덱스라며 에러
		int rowCount = pstmt.executeUpdate();
		System.out.println(rowCount + "개의 행이 변경되었습니다.");
		
		pstmt.close();
		conn.close();
		
		
	}
}

 

'자바 > jdbc' 카테고리의 다른 글

utils  (0) 2019.06.10
demo3  (0) 2019.06.10
demo2  (0) 2019.06.10

+ Recent posts