求助,不知道是哪里错误了

牙签爱狐狸 2018-02-08 10:59:31
News.Dao.java
package com.newsmanager.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.newsmanager.entity.News;
/**
* @author heqiheqi
*方法:查询所有新闻集合
*@return 返回所有新闻集合
*date 2018/2/6
*/
public class NewsDao{
public List<News> getNewsList(Integer pageNumber,Integer pageSize){

List<News> newsList=new ArrayList<News>();
Connection connection=null;
ResultSet resultSet=null;
Statement statement=null;

try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.驱动管理器获取数据库连接
String url="jdbc:mysql://127.0.0.1:3306/test";
String username="root";
String passwrod="root";
connection=DriverManager.getConnection(url,username,passwrod);
//3.获取statement,执行sql语句
statement=connection.createStatement();
//定义开始的条数为页码数-1再乘以页面显示的条数
int startSize= (pageNumber-1)*pageSize;
//执行查询并把结果返回到resultset值里去
resultSet=statement.executeQuery("select * from news limit"+startSize+","+pageSize);
//执行sql返回结果并解析
while (resultSet.next()) {
int newsId=resultSet.getInt("newsid");
String newsContent=resultSet.getString("newscontent");
String newsTitle=resultSet.getString("newstitle");
String newsStatus=resultSet.getString("newsstatus");
String newsType=resultSet.getString("newstype");
Date createTime=resultSet.getDate("createtime");
News news=new News(newsTitle, newsContent, newsStatus, newsType, createTime, newsId);
newsList.add(news);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
try {
if (statement!=null) {
statement.close();
}
if (resultSet!=null) {
resultSet.close();
}
if (connection!=null) {
connection.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return newsList;
}
/**
* @author heqiheqi
*方法:查询新闻总条数
*@return 返回总条数
*date 2018/2/7
*/
public int getCount(){
int count=0;
Connection connection=null;
ResultSet resultSet=null;
Statement statement=null;
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.驱动管理器获取数据库连接
String url="jdbc:mysql://127.0.0.1:3306/test";
String username="root";
String passwrod="root";
connection=DriverManager.getConnection(url,username,passwrod);
//3.获取statement,执行sql语句
statement=connection.createStatement();
resultSet=statement.executeQuery("selcet count(*) from news");
if(resultSet.next()){
count=resultSet.getInt(1);
}
} catch (Exception e) {
// TODO: handle exception
}finally{
try {
if (statement!=null) {
statement.close();
}
if (resultSet!=null) {
resultSet.close();
}
if (connection!=null) {
connection.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return count;
}
}

NewsServlet.java
package com.newsmanager.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 com.newsmanager.dao.NewsDao;
import com.newsmanager.entity.News;

/**
* Servlet implementation class NewsServlet
*/
@WebServlet(description = "我爱贺琪", urlPatterns = { "/NewsServlet" })
public class NewsServlet extends HttpServlet {
private NewsDao newsDao;
@Override
public void init() throws ServletException {
newsDao=new NewsDao();
}

private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public NewsServlet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//定义初始页面为1
Integer pageNumber=1;
String pn=request.getParameter("pageNumber");
if(pn!=null){
pageNumber=Integer.valueOf(pn);
}
if(pageNumber<=1){
pageNumber=1;
}
int count=newsDao.getCount();
//每页显示10调数据
Integer pageSize=10;
int pageCount;
if(count%pageSize==0){
pageCount=count/pageSize;
}else{
pageCount=count/pageSize+1;
}
if(pageNumber>pageCount){
pageNumber=pageCount;
}
//调用查询集合的方法
List<News> newsList=newsDao.getNewsList(pageNumber,pageSize);
//添加到reques作用域中
request.setAttribute("newsList", newsList);
request.setAttribute("pageNumber", pageNumber);
request.setAttribute("pageCount", pageCount);
//转发到newslist界面
request.getRequestDispatcher("newsList.jsp").forward(request, response);

}


}
newsList.java
package com.newsmanager.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 com.newsmanager.dao.NewsDao;
import com.newsmanager.entity.News;

/**
* Servlet implementation class NewsServlet
*/
@WebServlet(description = "我爱贺琪", urlPatterns = { "/NewsServlet" })
public class NewsServlet extends HttpServlet {
private NewsDao newsDao;
@Override
public void init() throws ServletException {
newsDao=new NewsDao();
}

private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public NewsServlet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//定义初始页面为1
Integer pageNumber=1;
String pn=request.getParameter("pageNumber");
if(pn!=null){
pageNumber=Integer.valueOf(pn);
}
if(pageNumber<=1){
pageNumber=1;
}
int count=newsDao.getCount();
//每页显示10调数据
Integer pageSize=10;
int pageCount;
if(count%pageSize==0){
pageCount=count/pageSize;
}else{
pageCount=count/pageSize+1;
}
if(pageNumber>pageCount){
pageNumber=pageCount;
}
//调用查询集合的方法
List<News> newsList=newsDao.getNewsList(pageNumber,pageSize);
//添加到reques作用域中
request.setAttribute("newsList", newsList);
request.setAttribute("pageNumber", pageNumber);
request.setAttribute("pageCount", pageCount);
//转发到newslist界面
request.getRequestDispatcher("newsList.jsp").forward(request, response);

}


}
这是代码,不知道哪错了,求大佬们帮帮忙!
ide:ecplise
服务器:tomcat 7.0
jdk1.7
...全文
1656 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmqw 2018-02-23
  • 打赏
  • 举报
回复
把构建出来的sql语句,放到数据库里执行下,看看哪里出问题了
unclezh0730 2018-02-23
  • 打赏
  • 举报
回复
引用 7 楼 qq_29213017 的回复:
问题解决了.limit后面一定要有空格
应该是注值的方式,而不是拼接参数。规范问题哦
无聊的上午 2018-02-22
  • 打赏
  • 举报
回复
引用 5 楼 qq_29213017 的回复:
resultSet=statement.executeQuery("select * from news");显示为:,这时候是正确的,但是当输入resultSet=statement.executeQuery("select * from news limit"+startSize+","+pageSize);显示的结果就是没有数据出来了,也不知道是哪里错了,数据没有报错
resultSet=statement.executeQuery("select * from news limit "+startSize+","+pageSize);这样写试试,limit 与参数之间有空格limit 1,2,而按照你的写法就成了limit1,2这里可能会报错
济南大飞哥 2018-02-22
  • 打赏
  • 举报
回复
造数据不要都造一样的,数据里带着数字1,2,3等,就方便调试了。
Exception e 2018-02-19
  • 打赏
  • 举报
回复
你可以debug,把SQL打印出来。然后执行,如果执行报错,那么就知道哪里的问题了,如果不是,至少可以排除数据库的问题
Mars佩奇 2018-02-09
  • 打赏
  • 举报
回复
运行后把错误截图
牙签爱狐狸 2018-02-09
  • 打赏
  • 举报
回复
问题解决了.limit后面一定要有空格
appleyk 2018-02-09
  • 打赏
  • 举报
回复
"select * from news limit "+startSize+","+pageSize

不加空格 就是这样的


夜半无声 2018-02-09
  • 打赏
  • 举报
回复
debug看看呀! 贴这么多代码又看不了运行现象
  • 打赏
  • 举报
回复
sql语句错了,查总条数那句
chenxin981 2018-02-09
  • 打赏
  • 举报
回复
调试,看看sql语句语法是否正确
牙签爱狐狸 2018-02-08
  • 打赏
  • 举报
回复
代码在运行的时候没有报错,但是结果却是,但是教程上显示的结果却是
ex_soso 2018-02-08
  • 打赏
  • 举报
回复
报错的复制出来啊
__san_niu_m 2018-02-08
  • 打赏
  • 举报
回复
引用 5 楼 qq_29213017 的回复:
resultSet=statement.executeQuery("select * from news");显示为:,这时候是正确的,但是当输入resultSet=statement.executeQuery("select * from news limit"+startSize+","+pageSize);显示的结果就是没有数据出来了,也不知道是哪里错了,数据没有报错
"select * from news limit"+startSize+","+pageSize 这个sql打印出来,然后放到数据库中执行,看看是不是sql错误,limit后面最好价格空格
牙签爱狐狸 2018-02-08
  • 打赏
  • 举报
回复
resultSet=statement.executeQuery("select * from news");显示为:,这时候是正确的,但是当输入resultSet=statement.executeQuery("select * from news limit"+startSize+","+pageSize);显示的结果就是没有数据出来了,也不知道是哪里错了,数据没有报错
Shadow85 2018-02-08
  • 打赏
  • 举报
回复
会不会你在jsp中遍历数据的时候导致js报错
Sunyiban 2018-02-08
  • 打赏
  • 举报
回复
1、确认你数据库有数据,表名数据库名没写错。 2、看看你的程序有没有报错,如果没错,打印出的SQL拿去数据库执行看是否有数据。

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧