package test.main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class MainClass02 {
public static void main(String[] args) {
//member
int num = 4;
String name = "주뎅이";
String addr = "봉천동";
//DB 연결객체를 담을 지역 변수 만들기
Connection conn = null;
try {
//오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//접속할 DB 의 정보 @아이피주소:port번호:db이름
String url="jdbc:oracle:thin:@localhost:1521:xe";
//계정 비밀번호를 이용해서 Connection 객체의 참조값 얻어오기
conn=DriverManager.getConnection(url, "scott", "tiger");
//예외가 발생하지 않고 여기까지 실행순서가 내려오면 접속 성공이다.
System.out.println("Oracle DB 접속 성공");
} catch (Exception e) {
e.printStackTrace();
}
//sql문을 대신 실행해줄 객체의 참조값을 담을 지역변수 미리 만들기
PreparedStatement pstmt = null;
try {
//실행할 미완성의 sql 문
String sql = "INSERT INTO member"
+ " (num, name, addr)"
+ " VALUES(?,?,)";
//미완성의 sql문을 전달하면서 PreparedStatement 객체의 참조값 얻어내기
pstmt = conn.prepareStatement(sql);
//PreparedStatement 객체의 메소드를 이용해서 미완성인 sql 문을 완성시키기(?에 값 바인딩하기)
pstmt.setInt(1, num);//1번째 ? 에 숫자 바인딩
pstmt.setString(2, name); //2번째 ? 에 문자열 바인딩
pstmt.setString(3, addr); //3번째 ? 에 문자열 바인딩
//sql 문 실행하기
pstmt.executeUpdate();
System.out.println("회원 정보를 저장했습니다.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
insert update delete 문의 형식은 위 코드를 기본으로 비슷비슷하다.
package test.main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class MainClass03 {
public static void main(String[] args) {
//DB 연결 객체를 담을 지역 변수 만들기
Connection conn = null;
try {
//오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//접속할 DB 의 정보 @아이피주소:port번호:db이름
String url="jdbc:oracle:thin:@localhost:1521:xe";
//계정 비밀번호를 이용해서 Connection 객체의 참조값 얻어오기
conn=DriverManager.getConnection(url, "scott", "tiger");
//예외가 발생하지 않고 여기까지 실행순서가 내려오면 접속 성공이다.
System.out.println("Oracle DB 접속 성공");
} catch (Exception e) {
e.printStackTrace();
}
//3번 회원의 주소를 동물원으로 수정하고자 한다.
int num = 3;
String addr = "에버랜드";
PreparedStatement pstmt = null;
try {
//실행할 미완성의 sql 문
String sql = "UPDATE member"
+ " SET addr = ?"
+ " WHERE num = ?";
//미완성의 sql문을 전달하면서 PreparedStatement 객체의 참조값 얻어내기
pstmt = conn.prepareStatement(sql);
//PreparedStatement 객체의 메소드를 이용해서 미완성인 sql 문을 완성시키기(?에 값 바인딩하기)
pstmt.setInt(2, num);
pstmt.setString(1, addr);
//sql 문 실행하기
pstmt.executeUpdate();
System.out.println("회원 정보를 저장했습니다.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
JDBC 이클립스로 DB수정하기
package test.main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class MainClass05 {
public static void main(String[] args) {
//DB 연결 객체를 담을 지역 변수 만들기
Connection conn = null;
try {
//오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//접속할 DB 의 정보 @아이피주소:port번호:db이름
String url="jdbc:oracle:thin:@localhost:1521:xe";
//계정 비밀번호를 이용해서 Connection 객체의 참조값 얻어오기
conn=DriverManager.getConnection(url, "scott", "tiger");
//예외가 발생하지 않고 여기까지 실행순서가 내려오면 접속 성공이다.
System.out.println("Oracle DB 접속 성공");
} catch (Exception e) {
e.printStackTrace();
}
//4번 회원을 삭제해 보세요.
int num = 4;
PreparedStatement pstmt = null;
try {
//실행할 미완성의 sql 문
String sql = "DELETE FROM member"
+ " WHERE num = ?";
//미완성의 sql문을 전달하면서 PreparedStatement 객체의 참조값 얻어내기
pstmt = conn.prepareStatement(sql);
//PreparedStatement 객체의 메소드를 이용해서 미완성인 sql 문을 완성시키기(?에 값 바인딩하기)
pstmt.setInt(1, num);
//sql 문 실행하기
pstmt.executeUpdate();
System.out.println("회원 정보를 저장했습니다.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
이클립스로 4번회원 삭제해보기
package test.main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class MainClass06 {
public static void main(String[] args) {
//시퀀스(member_seq)를 이용해서 회원정보 추가
String name = "원숭이";
String addr = "상도동";
//DB 연결객체를 담을 지역 변수 만들기
Connection conn = null;
try {
//오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//접속할 DB 의 정보 @아이피주소:port번호:db이름
String url="jdbc:oracle:thin:@localhost:1521:xe";
//계정 비밀번호를 이용해서 Connection 객체의 참조값 얻어오기
conn=DriverManager.getConnection(url, "scott", "tiger");
//예외가 발생하지 않고 여기까지 실행순서가 내려오면 접속 성공이다.
System.out.println("Oracle DB 접속 성공");
} catch (Exception e) {
e.printStackTrace();
}
//sql문을 대신 실행해줄 객체의 참조값을 담을 지역변수 미리 만들기
PreparedStatement pstmt = null;
try {
//실행할 미완성의 sql 문
String sql = "INSERT INTO member"
+ " (num, name, addr)"
+ " VALUES( member_seq.NEXTVAL, ?, ?)";
//미완성의 sql문을 전달하면서 PreparedStatement 객체의 참조값 얻어내기
pstmt = conn.prepareStatement(sql);
//PreparedStatement 객체의 메소드를 이용해서 미완성인 sql 문을 완성시키기(?에 값 바인딩하기)
pstmt.setString(1, name);//1번째 ? 에 문자열 바인딩
pstmt.setString(2, addr);//2번째 ? 에 문자열 바인딩
//sql 문 실행하기
pstmt.executeUpdate();
System.out.println("회원 정보를 저장했습니다.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
시퀀스 값을 넣어서 테이블에 데이터 입력해보기
미리 DB에 INSERT할 메소드를 만들어서 사용해보기
package test.main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import test.mypac.Member;
public class MainClass08 {
public static void main(String[] args) {
//수정할 회원의 정보
int num = 1;
String name = "이정호";
String addr = "아현동";
//아래의 update() 메소드를 이용해서 회원정보가 수정되도록 해 보세요.
Member m = new Member();
m.num = num;
m.name = name;
m.addr = addr;
MainClass08.update(m);
}
public static void update(Member m) {
//DB 연결 객체를 담을 지역 변수 만들기
Connection conn = null;
try {
//오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//접속할 DB 의 정보 @아이피주소:port번호:db이름
String url="jdbc:oracle:thin:@localhost:1521:xe";
//계정 비밀번호를 이용해서 Connection 객체의 참조값 얻어오기
conn=DriverManager.getConnection(url, "scott", "tiger");
//예외가 발생하지 않고 여기까지 실행순서가 내려오면 접속 성공이다.
System.out.println("Oracle DB 접속 성공");
} catch (Exception e) {
e.printStackTrace();
}
PreparedStatement pstmt = null;
try {
//실행할 미완성의 sql 문
String sql = "UPDATE member"
+ " SET name = ?, addr = ?"
+ " WHERE num = ?";
//미완성의 sql문을 전달하면서 PreparedStatement 객체의 참조값 얻어내기
pstmt = conn.prepareStatement(sql);
//PreparedStatement 객체의 메소드를 이용해서 미완성인 sql 문을 완성시키기(?에 값 바인딩하기)
pstmt.setString(1, m.name);
pstmt.setString(2, m.addr);
pstmt.setInt(3, m.num);
//sql 문 실행하기
pstmt.executeUpdate();
System.out.println("회원 정보를 저장했습니다.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
update 메소드를 만들어 수정해보기.
DTO 클래스 만들어보기
이클립스에서 마우스 우클릭 ->source->generate 메뉴에서 constructor와 setter, getter 메소드 생성 가능
필드의 data type과 필드명만 정해지면 생성자, setter, getter메소드도 정해진 것이다.
package test.dto;
/*
* Data Transfer Object
*
* - 여러가지의 정보를 하나의 객체에 담기 위해 설계된 클래스
* - 필드의 접근 지정자는 모두 private
* - 접근 메소드 setter, getter 메소드가 있어야 한다.
* - 디폴트(기본)생성자가 있어야 한다.
* - 인자로 필드의 모든값을 전달 받는 생성자도 있어야 한다.(있으면 좋음 option)
*/
public class MemberDto {
//필드의 접근 지정자를 private로
private int num;
private String name;
private String addr;
//디폴트 생성자
public MemberDto() {}
public MemberDto(int num, String name, String addr) {
super();
this.num = num;
this.name = name;
this.addr = addr;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
//마우스 우클릭 => source => generate 메뉴에서 constructor 와 setter,getter 메소드 생성 가능
}
'수업내용' 카테고리의 다른 글
20230517 수업내용😶🌫️😶🌫️😶🌫️ (0) | 2023.05.17 |
---|---|
20230516 수업내용🤦♂️🤦♂️🤦♂️🤦♂️ (0) | 2023.05.16 |
20230512 수업내용 (0) | 2023.05.12 |
20230511 수업내용🤦♂️🤦♂️ (1) | 2023.05.11 |
20230510 수업내용🤦♂️🤦♂️ (0) | 2023.05.10 |
댓글