it-source

인덱스에 IN 또는 OUT 매개 변수 누락: Java, Oracle에서 1 오류 발생

criticalcode 2023. 8. 14. 22:55
반응형

인덱스에 IN 또는 OUT 매개 변수 누락: Java, Oracle에서 1 오류 발생

안녕하세요. 저는 Netbeans 8.0.2 및 Oracle 11g Express Edition을 사용하여 JSF 2.2의 라이브러리 관리 시스템을 코딩했습니다.저는 책, 대출자 등의 이름을 가진 여러 페이지와 데이터베이스에 동일한 이름을 가진 몇몇 표를 가지고 있습니다.제 문제는 이것입니다: 차용자 화면에 책 ID가 표시됩니다.하지만 저는 같은 아이디를 가진 책의 제목에 도달하고 싶습니다.여기 제 코드가 있습니다.

public List<Borrower> getBorrowers()throws ClassNotFoundException,SQLException, InstantiationException, IllegalAccessException{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","Alparslan-PC","123456");
    ps=con.prepareStatement("SELECT * FROM BORROWER");

    BookidPs = con.prepareStatement("SELECT TITLE FROM BOOK AND BORROWER WHERE ISBN=?");


    ResultSet rs=ps.executeQuery();
    ResultSet Rs2=BookidPs.executeQuery();
    List<Borrower> liste = new ArrayList<Borrower>();
    while(rs.next()){

        Borrower borrow = new Borrower();
        borrow.setId(rs.getBigDecimal("ID"));
        borrow.setName(rs.getString("NAME"));
        borrow.setSurname(rs.getString("SURNAME"));
        borrow.setAddress(rs.getString("ADDRESS"));
        borrow.setPhonenumber(rs.getString("PHONENUMBER"));
        borrow.setBorrowdate(rs.getString("BORROWDATE"));
        //book.setIsbn(rs.getString("BOOKID"))
        borrow.setBookid(Rs2.getString("BOOKID"));
        //borrow.setBookid(((Book) rs.getObject("BOOKID")).getIsbn());
        liste.add(borrow);
    }
    System.out.print(liste);
    return liste;
}

22번 라인이 차입으로 변경된 경우.setBookid(rs.getString("BOOKID")); 부키드가 표시됩니다.BookidPs라는 다른 쿼리를 작성했습니다. 이 프로그램을 실행하면 인덱스:: 1 오류에서 Missing IN 또는 OUT 매개 변수가 발생합니다.도와주시면 감사하겠습니다.감사해요.

오류 메시지의 "Missing IN or OUT parameter(IN 또는 OUT 파라미터 누락)"는 다음에 대한 것입니다.?쿼리:

SELECT TITLE FROM BOOK AND BORROWER WHERE ISBN=?

값을 입력하지 않았습니다.다음과 같이 시도:

BookidPs = con.prepareStatement("SELECT TITLE FROM BOOK AND BORROWER WHERE ISBN=?");
BookidPs.setString(1, theIsbn);

쿼리에는 ISBN 매개 변수가 필요하지만 코드에서 해당 변수가 어디에 있는지 알 수 없습니다.이 쿼리를 사용하려면 누락된 매개 변수를 제공해야 합니다.사실, 이 두 번째 질문은 당신에게 전혀 유용하지 않은 것 같습니다.코드가 주어졌을 때, 왜 당신이 이 쿼리를 사용하려고 하는지 모르겠습니다.rs.

그러나 실제로 해당 매개 변수가 채워지더라도 쿼리는 유효하지 않은 SQL입니다.

제 생각에 당신은 아마도 하나의 질문, 즉 조인을 원할 것입니다.두 번째 쿼리는 BOOK 테이블에서 TITLE을 선택하려고 시도하는 것 같습니다.따라서 매개 변수 없이 이 쿼리를 사용할 수 있습니다.

SELECT * FROM BORROWER JOIN BOOK ON BORROWER.BOOKID = BOOK.BOOKID

언급URL : https://stackoverflow.com/questions/27342697/missing-in-or-out-parameter-at-index-1-error-in-java-oracle

반응형