关于数据库系统,只能借书不能还书,还书表不更新。不知道是数据库建错了还是JAVA代码有错,请看看是哪一个出错了。
java的ide不是有提示吗,你截图的部分也不是问题所在点
你运行调试下,特别是 sql 语句,你给出的图代码也不完整,这怎么看得出来呢
看不出问题
不知道你这个问题是否已经解决, 如果还没有解决的话: int countsDifferent=0; // 标签数字与数组元素不同的次数
int different=0; // 标签数字
Random rd= new Random();
outCycle: //外层循环标签
/**产生标签数字并验证
***/
while(true){
different=rd.nextInt(); // 产生一个标签数字
for(int num : copiedNums){
/**如标签数字与数组中任一元素相同,
* 则退出内层循环,继续产生新的标签数字,进行
* 下一次外层循环,即再次进行些内层循环中
**/
if(different == num ){
break;
/**如标签数字与数组中任一元素不同,
* 标签不同次数变量则加1,当countsDifferent等于
* 数组长度时,则表明标签数字与数组所有元素都不同。
* 此时退出外层循环,即整个二重循环体结束。标签数字
* 达的值达到了设计目的。
**/
}else{
countsDifferent++;
if(countsDifferent>=copiedNums.length){
break outCycle;
}
}
}
}
从你提供的信息来看,问题可能存在于代码的更新还书表的逻辑。在你提供的代码中,更新还书表的逻辑并没有包含任何具体的代码实现。
以下是我推测你需要的修复建议:
Borrow borrow = getBorrowById(borrowId)
这一行代码是否能够正常返回借阅记录。确保borrow
不为null
,即确保能够从数据库中获取到对应的借阅记录。
更新还书表的逻辑:
updateReturnTable
方法中,你需要编写具体的代码来更新还书表。以下是示例的JAVA代码片段,用于更新还书表的逻辑:
// 更新还书表
public boolean updateReturnTable(Borrow borrow) {
// 获取数据库连接
Connection connection = getConnection();
try {
// 创建更新还书表的SQL语句
String sql = "UPDATE return_table SET returned = true WHERE book_id = ? AND user_id = ?";
// 创建预编译语句
PreparedStatement preparedStatement = connection.prepareStatement(sql);
// 设置参数
preparedStatement.setInt(1, borrow.getBookId());
preparedStatement.setInt(2, borrow.getUserId());
// 执行更新
int rowsUpdated = preparedStatement.executeUpdate();
// 检查更新是否成功
if (rowsUpdated > 0) {
return true;
}
} catch (SQLException e) {
// 处理异常
e.printStackTrace();
} finally {
// 关闭数据库连接
closeConnection(connection);
}
return false;
}
请根据你实际的数据库表结构和命名,修改以上代码中的表名、字段名等部分。
建议你尝试以上修复方案,并检查是否能解决问题。如果问题仍然存在,可能需要进一步检查你的数据库设计和其他相关代码。