실습

  1. product 테이블 drop → 다시 생성
  2. 시퀀스 생성 1씩 증가 - product_seq
  3. ProductDAO 클래스에 상품추가 함수가서 id 값은 시퀀스 입력 받으세요. (첫번째 파라미터는 안받아도 됨)
  4. 프로그램을 수정하면 됨

sql developer

테이블 삭제, 테이블 다시 생성, 시퀀스 생성

select * from product;

drop table product;

create table product(
	id number primary key,
	name varchar2(100),
	price number
);

CREATE SEQUENCE product_seq START WITH 1 
INCREMENT BY 1 NOCACHE NOMAXVALUE;

ProductDAO.java

int id 매개변수는 지워줌

우리는 쿼리문을 자바한테 던지는거니까 시퀀스 저렇게 던져도 되겠지?

	public int 상품추가(String name, int price)	{
		String sql = "INSERT INTO product(id, name, price) 
													VALUES(**product_seq.nextval**,?,?)";
		
		try {
			Connection conn = DBConn.디비연결(); 
			
			PreparedStatement pstmt = conn.prepareStatement(sql); 
			**// 시퀀스 있는 부분은 지워주고 name 부터 다시 1번**
			pstmt.setString(1, name);
			pstmt.setInt(2, price);
			
			return pstmt.executeUpdate(); 
		
			//pstmt.executeQuery(); 
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return -1;
		
	} // void 상품추가

product.jsp

마찬가지로 id 값은 받지 않는다.

<form action="insert.jsp" method="post">
	<input type="text" placeholder="name" name="name" /> <br>
	<input type="text" placeholder="price" name="price" /> <br>
	<button type="submit">등록</button>
</form>