出现这种问题原因是代码中的数据库、数据表跟自己创建的数据库名跟表名对不上,可以根据错误提示看到是哪不一样。
我的数据库名跟表名是这样的:
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,后运行下代码就成了