public class UserDao {
Connection connection = null;
PreparedStatement preparedStatement=null;
public User login(String name,String password){
User user = null;
ResultSet resultSet;
try {
connection= DBUtils.getConnection();
String sql = "select * from user where user.users.name=? and user.users.password=?";
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,name);
preparedStatement.setString(2,password);
resultSet = preparedStatement.executeQuery();
if(resultSet.next()){
user = new User();
user.setName(resultSet.getString("name"));
user.setPassword(resultSet.getString("password"));
System.out.println("登錄成功");
}else{
System.out.println("用戶名或者密碼錯誤");
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
public boolean addUser(User user){
try {
connection=DBUtils.getConnection();
String sql="insert into user.users(name,password) values(?,?)";
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,user.getName());
preparedStatement.setString(2,user.getPassword());
if(preparedStatement.executeUpdate()!=0){
System.out.println("創建新用戶成功");
return true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
小白求助,運行到 preparedStatement=connection.prepareStatement(sql);就報500錯誤
實在不知道怎么改,請教大佬們
uj5u.com熱心網友回復:
你的name,password 有值嗎uj5u.com熱心網友回復:
剛剛改了,賦值也不行,都想不做了
uj5u.com熱心網友回復:
UserDao 23行空指標uj5u.com熱心網友回復:
忘了你這種寫法應該咋寫了 但是是先放 preparedStatement=connection.prepareStatement(sql);再set值嗎
uj5u.com熱心網友回復:
應該是sql有問題的吧,查詢是空值,把sql在資料庫上執行一下看看結果。
uj5u.com熱心網友回復:
connection == nulluj5u.com熱心網友回復:
debug就知道了 在23行打個斷點 然后就能看到哪個變數為空了 然后就是下一個問題了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/60339.html
標籤:Java相關
