出现这种问题原因是代码中的数据库、数据表跟自己创建的数据库名跟表名对不上,可以根据错误提示看到是哪不一样。
我的数据库名跟表名是这样的:

eclipse报错是这样的:
意思是在userdb数据库中没有user这个表,我的是UserDao类里面的问题
package com.ctc.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.ctc.model.User;
import com.ctc.util.DBUtil;
public class UserDao {
public int findByUser(User user) {
String sql="select * from user where username='"+user.getUsername()+
"' and password='"+user.getPassword()+"'";
ResultSet rSet=DBUtil.query(sql);
try {
if(rSet.next()) {
return 1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
public int DeleteUser(User user) {
String sql="delete from user where username='"+user.getUsername()+"'and password='"+user.getPassword()+"'";
int result=DBUtil.update(sql);
if(result>0)
return 1;
else
return 0;
}
public int UpdateUser(User user) {
String sql="update user set password='"+user.getPassword()+"'where username='"+user.getUsername()+"'";
int result=DBUtil.update(sql);
if(result>0)
return 1;
else
return 0;
}
public int InsertUser(User user) {
String sql="insert into user(username,password) "
+ " values('"+user.getUsername()+"','"+user.getPassword()+"')";
int result=DBUtil.update(sql);
if(result>0)
return 1;
else
return 0;
}
public List<User>findAllUser(){
List<User> list=new ArrayList<User>();
String sql="select * from user";
ResultSet rSet=DBUtil.query(sql);
try {
while(rSet.next()) {
User user=new User();
user.setUserid(rSet.getInt("userid"));
user.setUsername(rSet.getString("username"));
user.setPassword(rSet.getString("password"));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
我直接粘的朋友的代码,忘记改配置了,这回的问题警醒我了,细节决定成败。
按ctrl F打开替换,我这里直接把user表名换回admin_info表名了

Ps:这里配置文件中的是自己数据库的名字:(我的是数据库名是userdb)

启动Tomcat,后运行下代码就成了
本文记录了一次因数据库表名错误导致的程序异常问题。开发者在使用Eclipse时发现报错提示缺少'user'表,实际上表名为'admin_info'。通过修改代码中的表名并更新配置文件,成功解决了问题,提醒我们注意代码中的细节。此外,分享了对代码进行搜索替换以快速修正错误的方法,强调了配置文件与数据库一致性的重要性。
3万+

被折叠的 条评论
为什么被折叠?



