正在做课程设计,做了图书管理的...因为才学java不久所以是网上找的代码,源代码中用的是SQLServer的数据库,作为一个学java的就必然想到了MySQL,所以重写了数据库的驱动改成了mysql,问题也接踵而至:
问题一:
sqlserver中的这条语句:"SELECT balance=datediff(S,Obotime,getdate()),Ouid,ObRenttime FROM b_Outbooks");
和mysql的 datediff的用法不一样,不知道该如何解决...问题二:
数据库中图书的ID是自增长的,然后在添加新书信息的时候图书ID是不填的,问题又来了...dbc.executeUpdate("INSERT b_Books VALUES ('" + txtName.getText() +
"','" + txtPreview.getText() + "','" +
(String) cbSort.getSelectedItem() + "','" +
txtPublisher.getText() + "'," +
Integer.parseInt(txtSum.getText()) + "," +
Integer.parseInt(txtPrice.getText())+ ",'" +
txtAuthor.getText() + "',DEFAULT)"))少了第一列ID的插入,不知道怎么才能在程序中进行修改,数据库里ID是自增长的,不用填的,程序中不填又会报
Incorrect integer value :"for column 'id' at row 1
请高手们不惜敲几下键盘帮忙解决下
问题一:
sqlserver中的这条语句:"SELECT balance=datediff(S,Obotime,getdate()),Ouid,ObRenttime FROM b_Outbooks");
和mysql的 datediff的用法不一样,不知道该如何解决...问题二:
数据库中图书的ID是自增长的,然后在添加新书信息的时候图书ID是不填的,问题又来了...dbc.executeUpdate("INSERT b_Books VALUES ('" + txtName.getText() +
"','" + txtPreview.getText() + "','" +
(String) cbSort.getSelectedItem() + "','" +
txtPublisher.getText() + "'," +
Integer.parseInt(txtSum.getText()) + "," +
Integer.parseInt(txtPrice.getText())+ ",'" +
txtAuthor.getText() + "',DEFAULT)"))少了第一列ID的插入,不知道怎么才能在程序中进行修改,数据库里ID是自增长的,不用填的,程序中不填又会报
Incorrect integer value :"for column 'id' at row 1
请高手们不惜敲几下键盘帮忙解决下
这个语句是默认插所有字段的,既然你第一个ID已经是自动增长的了,那么就不要往里面插
改用
insert into b_Books (字段1,字段2,字段3...) values(值1,值2,值3....)
dbc.executeUpdate("INSERT b_Books ('bname','bpreview','bsort','bpublisher','bsum','bprice','bauthor')VALUES ('" + txtName.getText() +
"','" + txtPreview.getText() + "','" +
(String) cbSort.getSelectedItem() + "','" +
txtPublisher.getText() + "'," +
Integer.parseInt(txtSum.getText()) + "," +
Integer.parseInt(txtPrice.getText())+ ",'" +
txtAuthor.getText() + "',DEFAULT)"))我改成这样以后又报错了...
you have an error in your SQL syntax;chexk the manual that corresponds to your MYSQL server version for the right syntax to use near''bname','bpreview','bsort','bpublisher','bsum','bprice','bauthor')VALUES ('乱码' at line 1
求助啊~还有2楼3楼可能理解错了。我的数据库那边自增长没问题,问题出在程序里,4楼给了答案,就是又出了点小问题。希望能解决的高手帮个忙
还有第一个问题~
"','" + txtPreview.getText() + "','" +
(String) cbSort.getSelectedItem() + "','" +
txtPublisher.getText() + "'," +
Integer.parseInt(txtSum.getText()) + "," +
Integer.parseInt(txtPrice.getText())+ ",'" +
txtAuthor.getText() + "',DEFAULT)")改成这样之后他报错column count doesn't match value count at row 1
我网上查了下说是SQL语句里列的数目和后面的值的数目不一致。
但我是制定的字段名插入值,应该不会有不一致的错误啊,第一列ID字段我设置的是主键和自增长...
不知道是什么问题了..
这里面的语句打印出来,就很容易看出来错,实在不行复制到sql界面调错最方便
这个问题终于解决了还有第一个datediff函数的问题....
sqlserver语句:"SELECT balance=datediff(S,Obotime,getdate()),Ouid,ObRenttime FROM b_Outbooks");
换成mysql的话参数不对....不知道该如何修改了....求教
求数据库里一个日期字段和当前日期的时间差,
貌似mysql里也是用datediff的