Alp*_*Alp 7 java sql oracle oracle11g
您好我使用Netbeans 8.0.2和Oracle 11g Express Edition在JSF 2.2中编写了一个库管理系统.我有几个名为Books,Borrowers等的页面和一些在数据库中命名相同的表.我的问题是:在Borrowers中显示屏幕书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;
}
Run Code Online (Sandbox Code Playgroud)
如果第22行用borrow.setBookid(rs.getString("BOOKID"))更改; 显示了bookids.我写了另一个名为BookidPs的查询.如果我运行这个程序,我会在index :: 1错误时得到Missing IN或OUT参数.如果你帮助我会好意思.谢谢
Sto*_*ica 14
错误消息中的"Missing IN或OUT参数"适用?于查询:
Run Code Online (Sandbox Code Playgroud)SELECT TITLE FROM BOOK AND BORROWER WHERE ISBN=?
你没有为它提供价值.试试这样:
BookidPs = con.prepareStatement("SELECT TITLE FROM BOOK AND BORROWER WHERE ISBN=?");
BookidPs.setString(1, theIsbn);
Run Code Online (Sandbox Code Playgroud)
查询需要ISBN参数,但我看不到代码中有这样的变量.要使用此查询,您需要提供缺少的参数.事实上,似乎第二个查询对你完全没用.鉴于代码,我不明白为什么要使用此查询而不是从中获取值rs.
但实际上,即使填充了该参数,查询也是无效的SQL.
我想你可能只想要一个查询,一个JOIN.您的第二个查询似乎尝试从BOOK表中选择TITLE.所以也许你想要这个查询,没有参数:
SELECT * FROM BORROWER JOIN BOOK ON BORROWER.BOOKID = BOOK.BOOKID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63156 次 |
| 最近记录: |