eyuntaek
79
2018-09-06 19:01:48
2
520

sql 쿼리문 맞는지 확인 부탁드립니다


public List book_add(int year, String price, String company, String information, String writer, String area, String rent, String rentdate, String name, String broad, String num, String reservation) {

        List list = new ArrayList();

        try {

            conn = dbc.getConn();

            pstmt = conn.prepareStatement("insert into LIBRARY values (?,?,?,?,?,?,?,?,?,?,?,?)");

            pstmt.setInt(1, year);

            pstmt.setString(2, price);

            pstmt.setString(3, company);

            pstmt.setString(4, information);

            pstmt.setString(5, writer);

            pstmt.setString(6, area);

            pstmt.setString(7, rent);

            pstmt.setString(8, rentdate);

            pstmt.setString(9, name);

            pstmt.setString(10, broad);

            pstmt.setString(11, num);

            pstmt.setString(12, reservation);

            rs = pstmt.executeQuery();

            pstmt.close();

            rs.close();

        } catch (SQLException e) {

            e.getMessage();

        }

        return list;

    }


도서 디비에 책을 추가하는 코드입니다. 제눈엔 문제 없어보이는데 컴파일시 추가가 안되네요 ..


 public List reservation_delete(String num) {

        List list = new ArrayList();

        try {

            conn = dbc.getConn();

            pstmt = conn.prepareStatement("UPDATE LIBRARY SET RESER ='가' WHERE RESER ='불' AND NUM =?");

            PreparedStatement pstmt2 = conn.prepareStatement("DELETE from RESERVATION where NUM=?");

            pstmt.setString(1, num);

            pstmt2.setString(1,num);

            ResultSet rs2 = pstmt2.executeQuery();

            rs = pstmt.executeQuery();

            pstmt.close();

            pstmt2.close();

            //rs.close();

            rs2.close();

        } catch (SQLException e) {

            e.getMessage();

        }

        return list;

    }

이 부분은 예약 취소 하는 함수입니다 책의 예약가능 여부를 "가"로 바꿔주고 예약 목록에서 지워버리는 구문입니다

이전에 인서트 업데이트 딜리트를 사용했을때는 잘되었는데 새로 코드를구현하는데 이상하게

익스큐트가 안되네요 ...

0
  • 답변 2

  • 너부리
    822
    2018-09-06 19:47:40

    executeQuery()는 데이터 획득입니다.

    executeUpdate()를 사용하세요.

    그리고, pstmt는 data type이 지정되지 않았는데 멤버변수로 선언한 것은 아니지요?

    참조

  • eyuntaek
    79
    2018-09-06 19:49:16

    아아 타입은 위에서 전역변수로 지정했습니다 업데이트로 바꿔보겠습니다 감사합니다 !


  • 로그인을 하시면 답변을 등록할 수 있습니다.