这是插入的代码
PreparedStatement pstm=conn.prepareStatement("insert into order(customerID,bookID,bookName,bookPrice) values(?,?,?,?)");
pstm.setString(1, customerid);
pstm.setString(2, book.getBookID());
pstm.setString(3, book.getBookName());
pstm.setDouble(4, book.getBookPrice());

result=pstm.executeUpdate();
提示的错误是以下
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(customerID,bookID,bookName,bookPrice) values('k','01','Social network',30.' at line 1
别的值都可以取到,其中bookPrice是double类型,请问各位是什么问题??

解决方案 »

  1.   

    错误提示到30.就断了,values的右括号都未出现,可见问题就出在这了
      

  2.   

    你的price是double啊  怎么插入的是字符串啊
      

  3.   

    我的30是javabean中的.getBookPrice()方法得到的,不是手写的呀
      

  4.   


    pstm.setDouble(4, book.getBookPrice());
    这里set是double啊,不是字符串呢
      

  5.   


    book.getBookPrice() 
    book对象的bookPrice属性是double类型么?
      

  6.   

    book.getBookPrice()取出来的数据是(30.),有问题。。
      

  7.   

    哈哈,这个错误比较隐蔽,order是sql的关键字,最好不要用来做表名,如果你确实已经用他做表名了,把你的语句换成这样
    "insert into `order`(customerID,bookID,bookName,bookPrice) values(?,?,?,?)"
    即在order两侧加上反引号(键盘上1的左边)
      

  8.   

    +1
    错误提示也说明是 order 附近的语法错误,因为order后边没找到by...