날아라쩡글이의 블로그입니다.
java에서 Insert, select, update, delete사용방법 본문
java에서 Insert, select, update, delete사용방법
날아라쩡글이 2021. 10. 20. 21:28Insert
- 실행할 SQL을 정의한다.
- String sql = "insert into tb_table (student_name, student_Score) values(?, ? ) "
- Oracle 핵심 JDBC드라이버 클래스를 JVM메모리에 로딩시키기
- Oracle 핵심 JDBC 드라이버 클래스가 JVM메모리에 로딩된다.
- Oracle 핵심 JDBC 드라이버가 JVM의 드라이버 레지스터리에 등록된다.
- 드라이버 레지스터리는 JDBM드라이버 정보가 저장되는 곳이다.
- DriverManager 클래스를 사용해서 드라이버 레지스터리에 등록된 JDBC드라이버를 사용할 수 있다.
- Class.forName("oracle.jdbc.OracleDriver");
- Oracle 데이터베이스 접속 URL과 접속계정을 정의한다.
- 그러나 우리는 2번과 3번은 아까 정적메소드로 만들었기 때문에 생략해도 괜찮다.
- 드라이버 레지스터리에 등록된 oracle JDBC 드라이버를 이용해서 RDBMS와 연결하기
- 연결을 담당하는 Connection객체가 획득된다.
- Connection connection = DriverManager.getConnection(url, username, password);
- 정적메소드로 연결하면 객체가 획득된다.
- Connection connection = ConnectionUtil.getConnection();
- 연결을 담당하는 Connection객체가 획득된다.
- SQL과 SQL 실행에 필요한 값을 RDBMS로 전송하고 실행결과를 받아오는 PreparedStatement객체 획득하기
- PreparedStatement pstmt = connection.prepareStatement(sql);
- SQL 에 ?(바인딩 변수) 가 있으면 ?에 갯수만큼 preparedStatement객체에 값을 저장한다.
- pstmt.setString(1, "을지문덕");
pstmt.setInt(2, 100);
- pstmt.setString(1, "을지문덕");
- preparedStatement객체에 저장된 SQL과 값을 RDBMS로 전송하고 실행시킨다.
- int executeUpdate()
- INSERT,UPDATE, DELETE SQL을 RDBMS로 전송/ 실행시킬 떄 사용하는 메소드다.
- 추가/수정/삭제된 행의 갯수를 반환한다
- ResultSet executeQuery()
- SELECT SQL을 RDBMS로 전송/ 실행시킬 떄 사용하는 메소드다.
- 조회결과를 포함하고 있는 ResultSet객체를 반환한다.
- int rowCount = pstmt.executeUpdate();
System.out.println(rowCount + "개의 행이 추가되었습니다.");
- int executeUpdate()
- 데이터베이스 엑세스 작업이 완료되면 사용했던 자원을 해제 시킨다.
- pstmt.close();
connection.close(); - 역순으로 해제시켜야한다.
- pstmt.close();
쿼리가 달라지면 1,6 번빼고는 나머지는 반복이다.
delet sql 입력방법
- String sql ="delete from tb_sample_books "
+ "where book_no = ?";
update sql입력방법
- String sql = "update tb_sample_books "
+ "set "
+ "book_stock = ?, "
+ "book_on_sale = ? "
+ "where "
+ "book_publisher = ?";
select 입력방법
Scanner scan = new Scanner(System.in);
System.out.println("### 책 검색 프로그램");
System.out.println("### 책 검색할 키워드를 입력하세요 ");
System.out.println("### 키워드: ");
//도서관 검색프로그램의 코드작성
String keyword = scan.next();
1.SQL작성하기
String sql =" select book_no, book_title, book_writer, book_publisher, book_price, "
+ " book_discount_price, book_stock, book_on_sale "
+"from tb_sample_books "
+ "where book_title like '%' || ? || '%' " //오라클에서는 % + ? + %를 ||으로 연결됨, 글자연결은 ||를 사용함
+"order by book_no desc ";
2. Connection객체 생성하기
Connection connetion = ConnectionUtil.getConnection();
3. PreparedStatement 객체 획득하기
PreparedStatement pstmt = connetion.prepareStatement(sql);
4. ?에 값 바인딩하기 SQL에 ? 가 없어서 생략 -- >검색프로그램 구현함
pstmt.setString(1, keyword);
5. SQL을 RDBMS로 전송해서 실행시키고, 조회결과가 포함한 ResultSet객체를 획득한다.
ResultSet rs = pstmt.executeQuery();
6. ResultSet의 API를 사용해서 조회결과를 추출해서 화면에 출력한다.
while(rs.next()) { //내용에 없으면 false를 반환함
int no = rs.getInt("book_no");
String title = rs.getString("book_title");
String writer = rs.getString("book_writer");
String publisher = rs.getString("book_publisher");
int price = rs.getInt("book_price");
int discountPrice = rs.getInt("book_discount_price");
int stock = rs.getInt("book_stock");
String onSale = rs.getString("book_on_sale");
System.out.println("책의 번호 : " + no);
System.out.println("책의 제목 : " + title);
System.out.println("책의 저자 : " + writer);
System.out.println("책의 출판사 : " + publisher);
System.out.println("책의 실제가격 : " + price);
System.out.println("책의 판매가격 : " + discountPrice);
System.out.println("책 재고 : " + stock);
System.out.println("책 판매여부 : " + onSale);
System.out.println("-------------------------------------");
}
7. 사용했던 자원을 해제한다.
rs.close();
pstmt.close();
connetion.close();
항상 역순으로 닫아줘야한다.
'중앙 HTA (2106기) story > JDBC story' 카테고리의 다른 글
SQL 내장함수, 서브쿼리 (0) | 2021.10.25 |
---|---|
VO-DAO패턴, 오라클 시퀀스 (0) | 2021.10.21 |
자바와 연동하는 방법(JDBC), 자바 ConnectionUtil 생성 방법 (0) | 2021.10.20 |
DML언어(insert,delete,update, select),엑셀import방법 (0) | 2021.10.19 |
DB(데이터베이스), SELECT문 (0) | 2021.10.19 |