服务器遇到了阻止它完成请求

现在是出现了500错误了,但是我去找代码发现都没有问题啊,真的头秃了

java.lang.NullPointerException
com.lmonkey.service.LMONKEY_USERDao.selectAll(LMONKEY_USERDao.java:49)
com.lmonkey.servlet.user.DoUserSelect.doGet(DoUserSelect.java:26)

而这两个代码我看了几遍都没有问题啊。
LMONKEY_USERDao.java

package com.lmonkey.service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.lmonkey.dao.Basedao;
import com.lmonkey.entity.LMONKEY_USER;

public class LMONKEY_USERDao {
    
    //加入数据库
 public static int insert(LMONKEY_USER u) {
     String sql = "insert into LMONKEY_USER values(?, ?, ?, ?, DATE_FORMAT(?, '%Y-%m-%d'), ?, ?, ?, ?, ?)";
     
     Object[] params = {
             u.getUSER_ID(),
             u.getUSER_NAME(),
             u.getUSER_PASSWORD(),
             u.getUSER_SEX(),
             u.getUSER_BIRTHDAY(),
             u.getUSER_IDENITY_CODE(),
             u.getUSER_EMAIL(),
             u.getUSER_MOBILE(),
             u.getUSER_ADDRESS(),
             u.getUSER_STATUS()};
     
     return Basedao.exectuIUD(sql, params);
 }


@SuppressWarnings("null")
public static ArrayList<LMONKEY_USER> selectAll() {
    ArrayList<LMONKEY_USER> list =new ArrayList<LMONKEY_USER>();
    //声明结果集
    ResultSet rs = null;
    ///获取连接对象
    Connection conn = Basedao.getconn();
    
    PreparedStatement ps = null;
    
    
    
    try {
        String sql = "select * from LMONKEY_USER order by USER_BIRTHDAY";
        conn.prepareStatement(sql);
    49:    rs = ps.executeQuery(); 这里是代码49的位置
        
        while(rs.next()) {
            LMONKEY_USER u = new LMONKEY_USER(
                    rs.getString("USER_ID"),
                    rs.getString("USER_NAME"),
                    rs.getString("USER_PASSWORD"),
                    rs.getString("USER_SEX"),
                    rs.getString("USER_BIRTHDAY"),
                    rs.getString("USER_IDENTITY_CODE"),
                    rs.getString("USER_EMAIL"),
                    rs.getString("USER_MOBILE"),
                    rs.getString("USER_ADDRESS"),
                    rs.getInt("STATUS")
                    );
            
            list.add(u);
            
        }
        
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        Basedao.closeall(rs, ps, conn);
        
    }
    
    
    return list;
}
}

DoUserSelect.java:26

package com.lmonkey.servlet.user;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.lmonkey.entity.LMONKEY_USER;
import com.lmonkey.service.LMONKEY_USERDao;

@WebServlet("/manage/admin_douserselect")
public class DoUserSelect extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        // TODO Auto-generated method stub
    
        //获取用户记录
    26ArrayList<LMONKEY_USER> list= LMONKEY_USERDao.selectAll();这是26的位置
        
        //放到请求对象域里
        
        request.setAttribute("userlist", list);
        
        request.getRequestDispatcher("admin_user.jsp").forward(request, response);
        
        
    }

    
}


希望有人指点啊 真的不知道怎么办了

原因
数据库执行错误导致的500报错。

1、其中,变量ps只进行了声明,并没有赋值,导致第49行没有sql语句执行
2、第48行代码应该将返回结果给ps赋值


解决方法
修改第48行

conn.prepareStatement(sql);

ps=conn.prepareStatement(sql);

修改如下:

String sql = "select * from LMONKEY_USER order by USER_BIRTHDAY";
ps=conn.prepareStatement(sql);
rs = ps.executeQuery(); 这里是代码49的位置

这是一个简单的连接查询,你可以看下:

ps是null,改成以下即可。

            ps = conn.prepareStatement(sql);

若有帮助,谢谢采纳~

连接数据库失败了吧,导致数据查询不到数据。检查应用服务器与数据库服务器连接是否正常

ps变量没有赋值,只是声明了,
48行需要改成

ps = conn.prepareStatement(sql);

49空指针异常,它连接之后赋值给ps,再去使用ps做下面的操作