500空指针
package service; import java.util.List; import bean.Message; import dao.MessageDAO; //信息的service,用于二次处理数据 public class MessageSecvice { //实例化dao的方法 private MessageDAO messageDAO; public void MessageService() { messageDAO =new MessageDAO(); } //调用到中的方法传入参数,返回list public List<Message> getMessages(int page,int pageSize){ return messageDAO.getMessages(page, pageSize); } public int countMessages() { return messageDAO.countMessages(); } }
package servlet; import java.io.IOException; import java.util.List; 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 bean.Message; import service.MessageSecvice; public class MessageServlet extends HttpServlet { /** * @version 1.0 */ private MessageSecvice messageService; //重写init,service,destroy方法 @Override public void init() throws ServletException { super.init(); //实例化service的对象 messageService=new MessageSecvice(); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获得当前页码 String pageStr=request.getParameter("page"); //初始页数为1 int page=1; //当pageStr不为空则将pagestr赋值给page if(pageStr!=null&&"".equals(pageStr)) { page=Integer.parseInt(pageStr); } //调用方法,分页查询全部留言 List<Message> messages=messageService.getMessages(page, 5); for(Message m:messages) { System.out.println(m); } //获得总留言数 int count=messageService.countMessages(); System.out.println(count+"123"); //尾页计算 int last=count%5==0?(count/5):((count/5)+1); System.out.println(last+"1234"); //返回页面 request.setAttribute("page", page); request.setAttribute("last", last); request.setAttribute("messages", messages); request.getRequestDispatcher("/WEB-INF/views/biz/message_list.jsp").forward(request, response); } @Override public void destroy() { // TODO Auto-generated method stub super.destroy(); } }
package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import Common.ConnectionUtil; import bean.Message; //信息的方法具体实现类,最底层方法实现 public class MessageDAO{ //将每条留言封装进集合 public List<Message> getMessages(int page,int pageSize){ Connection conn=ConnectionUtil.getConnection(); System.out.println(conn); PreparedStatement stmt=null; ResultSet rs=null; List<Message> messages=new ArrayList<>(); //新建sql语句,limit m,n:从第m条开始取出共n条 String sql="select*from message order by create_time desc limit ?,?"; try { //预处理sql stmt=conn.prepareStatement(sql); stmt.setInt(1, (page-1)*pageSize); stmt.setInt(2, pageSize); rs=stmt.executeQuery(); while(rs.next()) { messages.add(new Message(rs.getLong("id"),rs.getLong("uesr_id"),rs.getString("username"),rs.getString("title"),rs.getString("content"),rs.getTimestamp("create_time"))); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { ConnectionUtil.release(rs, stmt, conn); } System.out.println(""); return messages; } //获得留言总数 public int countMessages() { Connection conn=ConnectionUtil.getConnection(); System.out.println(conn); PreparedStatement stmt=null; ResultSet rs=null; //设置sql语句 String sql="select count(*) total from message"; //预处理sql try { stmt=conn.prepareStatement(sql); rs=stmt.executeQuery(); while(rs.next()) { return rs.getInt("totle"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { ConnectionUtil.release(rs, stmt, conn); } return 0; } }
4
收起
正在回答 回答被采纳积分+1
1回答
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星