在一般java类中可以获取数据库数据,但是到servlet就报空指针异常
BooKDTO是字段和get/set方法及构造器省略BookDAO代码如下publicArrayList<BookDTO>list(){Stringsql="select...
BooKDTO是字段和get/set方法及构造器省略
BookDAO代码 如下
public ArrayList<BookDTO> list() {
String sql = "select * from tb_book";
ArrayList<BookDTO> list = new ArrayList<BookDTO>();
try {
conn = DBManager.getConn();
st = conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
BookDTO bd=new BookDTO(rs.getInt("book_id"),
rs.getString("book_name"), rs.getString("book_author"), rs.getInt("book_num"),
rs.getString("book_des"), rs.getDate("book_time"));
list.add(bd);
System.out.println(bd.getBookName());
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBManager.close(rs, st, conn);
}
return list;
}
如下代码在main方法中(java application 方式运行),可以得到数据,但是复制到servlet(web allpication 方式运行)就报空指针异常(已经配置)
ArrayList<BookDTO> arr=new BookDAO().list();
Iterator<BookDTO> it=arr.iterator();
while(it.hasNext()){
BookDTO bd=it.next();
System.out.println(bd.getBookName()+" "+bd.getBookAuthor()+" "+bd.getBookDes()+" "+
bd.getBookNum()+" "+bd.getBookTime()+" "+bd.getBookId());
} 展开
BookDAO代码 如下
public ArrayList<BookDTO> list() {
String sql = "select * from tb_book";
ArrayList<BookDTO> list = new ArrayList<BookDTO>();
try {
conn = DBManager.getConn();
st = conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
BookDTO bd=new BookDTO(rs.getInt("book_id"),
rs.getString("book_name"), rs.getString("book_author"), rs.getInt("book_num"),
rs.getString("book_des"), rs.getDate("book_time"));
list.add(bd);
System.out.println(bd.getBookName());
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBManager.close(rs, st, conn);
}
return list;
}
如下代码在main方法中(java application 方式运行),可以得到数据,但是复制到servlet(web allpication 方式运行)就报空指针异常(已经配置)
ArrayList<BookDTO> arr=new BookDAO().list();
Iterator<BookDTO> it=arr.iterator();
while(it.hasNext()){
BookDTO bd=it.next();
System.out.println(bd.getBookName()+" "+bd.getBookAuthor()+" "+bd.getBookDes()+" "+
bd.getBookNum()+" "+bd.getBookTime()+" "+bd.getBookId());
} 展开
5个回答
展开全部
servlet里面连接数据库的代码和你平时写的不太一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
贴一下NullpointException相关日志,看日志才能判断是哪段代码出错了的啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换一个老一点的jar包试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哪行代码报空指针?你的数据库连接有测试过有没问题。
追问
没有问题 ArrayList arr=new BookDAO().list();
这个在java。application方式有数据,在servlet用web application运行就空指针arr为空
追答
这个应该是调用DAO里面的方法,你用断点调用下方法进去之后rs,bd是不是为空就行了!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询