//addNew()方法,Int型的SQL语言可能有问题
public static void addNew(Bookclass aBook)throws DuplicateException{
bookID=aBook.getBookID();
bookIndex=aBook.getBookIndex();
bookName=aBook.getBookName();
bookISBN=aBook.getBookISBN();
bookAuthor=aBook.getBookAuthor();
bookConcern=aBook.getBookConcern();
leftNumOfBook=aBook.getLeftNumOfBook();
bookPrice=aBook.getBookPrice();
stateOfBook=aBook.getStateOfBook();
isNewBook=aBook.getIsNewBook();
everydayPenalty=aBook.getEverydayPenalty();
maxTimeOfBook=aBook.getMaxTimeOfBook();
publishDate=aBook.getPublishDate();
String sqlInsert="INSERT INTO Book"+
"(BookID,BookIndex,BookName,BookISBN,BookAuthor,BookConcern,"
+"LeftNumOfBook,BookPrice,StateOfBook,IsNewBook,EverydayPenalty,MaxTimeOfBook,PublishDate)"
+"VALUES('"+bookID+"','"+bookIndex+"','"+bookName+"','"+bookISBN+"','"
+bookAuthor+"','"+bookConcern+"','"+leftNumOfBook+"',"+bookPrice+"','"
+isNewBook+"','"+everydayPenalty+"','"+maxTimeOfBook+"','"+publishDate
+"')";
try{
Bookclass b=Bookclass.find(bookID);
throw(new DuplicateException("the same book is found"));
}
catch(NotFoundException e){
try{
int result=aStatement.executeUpdate(sqlInsert);
}
catch(SQLException ee){
System.out.println(ee);
}
}
}
测试时的main函数是
//main
public static void main(String[] args)
{
Bookclass aBook=new Bookclass("002","123","java","3-34-34","liang","huazhong","3","43.44","预订","true","0.5","40","2000-2-2");
Bookclass.initialize();
try{
aBook.addNew();
}
catch(DuplicateException e){
System.out.println(e);
}
Bookclass.terminate();
}
这是我写的一个类,是图书管理系统的一部分,可是编译测试时候说addNew的方法有问题,是数据库中的问题 编译结果为
C:\Documents and Settings\Administrator\桌面>java BookDA
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作
符丢失) 在查询表达式 '43.44','true','0.5','40','2000-2-2')' 中。
我这个类写的有点长 不能完全复制进来其他类没有问题就是这个类了 大家帮帮忙...
很急的。谢谢
|