我得到了这个错误,我不知道为什么我在workbench上尝试了这个语句,它起作用了。我也在寻找改进我的日期减法代码,基本上,我从表中得到deadline并从今天的日期中减去。
public boolean checkLessThanWeek(User userWhoWantsToExtendDeadline,BorrowedBook book) throws ParseException {
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Deadline FROM library_students.borrowedcopies WHERE LenderToID =" + "'" + userWhoWantsToExtendDeadline.getId()+ "'"+"And Barcode="+"."+book.getbookID());
if (rs.next()) {
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Date deadline = format.parse(rs.getString(1));
Date date=new Date();
String today=format.format(date.getDate());
date = format.parse(today);
long milliseconds=date.getTime()-deadline.getTime();
long days = milliseconds / (1000 * 60 * 60 * 24);
System.out.print(days);
}
rs.close();
return true;
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
这很可能是因为book.getBookId()
返回null,并且由于某种原因,SQL中前面有一个点(.
)。此外,最好使用?
使用参数化Sql语句,而且基本的错误处理也是一件好事。
if (userWhoWantsToExtendDeadline == null || book == null || book.getbookID() == null {
//throw exception perhaps or log?
return false;
}
String query = "SELECT Deadline FROM library_students.borrowedcopies WHERE LenderToID = ? AND Barcode = ?";
Statement stmt = con.createStatement(query);
stmt.setInt(1, userWhoWantsToExtendDeadline.getId());
stmt.setString(2, book.getbookID());
ResultSet rs = stmt.executeQuery();
注意,我假设您的第一个参数是int
,第二个参数是string
,但当然可能需要更改
当我导入数据库时,我在PHPMyadmin中遇到了一些问题。 您的SQL语法有错误;检查与您的MySQL server版本相对应的手册,以了解在第3行“”附近使用的正确语法(`form_id`varchar(18)COLLATE utf8_general_ci;NOT NULL DEFAULT“,) 有人知道我该怎么解决吗?
问题内容: 我有一个Java代码: 然后我有SQLException: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在’?’附近使用正确的语法。 问题答案: 您应该执行不带任何参数的,如下所示: 使用参数调用将按原样执行提供的查询(没有绑定参数)。
语法中有错误;查看与服务器版本相对应的手册,以了解第1行附近使用的正确语法 当我试图为我的帐单应用程序生成帐单时,上面的错误将会出现。下面是我的应用程序的代码。请给我一些解决这个错误的方法..................
这是一个已经用自己的语法运行SQLServer2005的存储过程,我在这里用mysql语法编写了这个存储过程。一切正常,但最后一个结束语句显示错误。 定界符$$ 创建定义者=@程序(在DATE,在DATE,在DOUBLE,在DOUBLE,在DOUBLE,在DOUBLE,在 dcVARCHAR(25)开始) 结束$$分隔符;
问题内容: 我有这样的存储过程: 但是它给出了错误: -您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第3行的’‘附近使用正确的语法 错误是什么意思?第2行有什么问题? 问题答案: 在使用触发器,存储过程等之前,必须先更改定界符。
未捕获的mysqli_sql_exception:您的SQL语法中有一个错误;请检查与您的MariaDB服务器版本相对应的手册,以获得在“near”中使用的正确语法?在第2行按'score'desc'排序。.. 我已经研究了在‘?’附近使用的正确语法。但我认为我的问题不同。