내 라이브러리 관리 시스템 프로젝트에서 검색 북 프레임을 구현 중입니다. 이 프레임에서 책의 가용성을 확인하고 싶습니다.JTable이 값을 채우는 동안 중복 값을 표시합니다.
1 책 : 나는이 프레임을 실행하고 때 발행 된 책
의 기록을 유지 - 어떤의 JTable
라이브러리 2 Issuebook에있는 모든 책의 기록을 유지 - 어떤 나는 두 개의 데이터베이스 테이블이 동일한 값으로 세 번 채워집니다. 출력은 코드 뒤에 첨부됩니다. 문제를 찾을 수 없습니다. 여기 내 코드 :
public void actionPerformed(ActionEvent e) {
String bookname=tfBookName.getText();
int count=0;
try{
con=DemoConnection.getConnection();
ps=con.prepareStatement("select book.bookid from book,issuebook where book.bookid!=issuebook.bookid and bookname=?");
ps.setString(1, bookname);
rs=ps.executeQuery();
while(rs.next())
{
count++;
String bookid =rs.getString(1);
String availability="Available";
Object[] row = { bookid, bookname, availability};
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.insertRow(0,row);
}
ps1=con.prepareStatement("select book.bookid from book,issuebook where book.bookid=issuebook.bookid and bookname=?");
ps1.setString(1, bookname);
rs1=ps1.executeQuery();
while(rs1.next())
{
String bookid =rs1.getString(1);
String availability="Issued";
Object[] row = { bookid, bookname, availability};
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.insertRow(0,row);
}
if(rs==null&&rs1==null)
{
JOptionPane.showMessageDialog(frame, "Book named"+bookname+"does not exist!!");
}
else if(rs==null&&rs!=null)
{
JOptionPane.showMessageDialog(frame, "All the copies of"+bookname+" book are issued!!");
}
else if(rs!=null&&rs==null)
{
JOptionPane.showMessageDialog(frame, "All the copies of"+bookname+" book are avaialble!!");
}
else if(rs!=null&&rs!=null)
{
JOptionPane.showMessageDialog(frame, count+" copies of"+bookname+" book is avaliable!!");
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
});
출력 내용은 다음과 같습니다. 발행 된 책은 표에 표시됩니다. 중복 된 항목은 채워지지 않았지만 사용 가능한 책의 중복 항목이 표에 채워집니다. @Blip이 눈에 띄었다으로
이는 – Blip
당신이 내 데이터베이스 테이블의 이미지를 첨부 일부 샘플 데이터 – Blip
여기에 사용되는 테이블의 구조를 업로드 할 수있는 데이터베이스 쿼리 SQL에 문제처럼 보인다 in post edit @Blip – SanjotKaur