jsp 与SQL数据库查询问题
本人想在jsp中查询pubs数据库的titles表,将查询出来的结果存入新建的表中,但是老是提示错误。packagemy;importjava.sql.*;importj...
本人想在jsp中查询pubs数据库的titles表,将查询出来的结果存入新建的表中,但是老是提示错误。
package my;
import java.sql.*;
import java.util.*;
public class PageQueryJB
{
private Connection con=null;
private Statement st=null;
private ResultSet rs=null;
private ArrayList list=new ArrayList();
int totalPage=0;//总页数
int pageSize=5; //一页中总记录数
int currentPage=0; //当前页号
int totalRecord=0;//总记录数
int firstRecord=0;
public ArrayList pageQuery(String s,int pageNO)
{try
{DBConnection db=new DBConnection();
con=db.getConnection();
st=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
currentPage=pageNO;
String sql=null;
StringTokenizer token=new StringTokenizer(s," ");
while(token.hasMoreTokens())
{
String temp=token.nextToken();
if(sql==null)
{
sql=" title like '%"+temp+"%' ";
}
else{
sql=sql+" and title like '%"+temp+"%' ";
}
}
sql="select title,type,price into 信息表 from titles where "+sql;
rs=st.executeQuery(sql);
if(!rs.last())
{
return list;
}
totalRecord=rs.getRow(); //获得总记录数
if(totalRecord%pageSize == 0)
{
totalPage=totalRecord/pageSize;
}
else
{
totalPage=totalRecord/pageSize+1;
}
if(currentPage>totalPage)
return list;
else
firstRecord=(currentPage-1)*pageSize+1;
rs.absolute(firstRecord-1);
int counter=1;
while( rs.next() && counter<=pageSize)
{
QueryVO vo=new QueryVO();
int n=rs.getRow();
vo.setRecID(String.valueOf(n));
vo.setTitle(rs.getString("title"));
vo.setType(rs.getString("type"));
vo.setPrice(rs.getString("price"));
list.add(vo);
counter++;
}
rs.close();
st.close();
con.close();
}
catch(Exception e)
{
System.out.println("数据库查询出错:"+e);
}
finally
{
rs=null;
st=null;
con=null;
}
return list;
}
////////////////////
public int getTotalPage()
{
return totalPage;
}
public int getPrepage()
{
int prePage=0;
if(currentPage>1)
prePage=currentPage-1;
else
prePage=1;
return prePage;
}
public int getNextPage()
{
int next;
if(currentPage==totalPage)
next=totalPage;
else
next=currentPage+1;
return next;
}
}
没有“into 信息表”就可以查出来,添加了后就没办法查出来了,各位帮忙看看,我需要把查询出来的结果存入到信息表中。谢谢啦
sql="select title,type,price into 信息表 from titles where "+sql;
rs=st.executeQuery(sql);
错误提示信息:数据库查询出错:java.lang.nullpointerException
各位帮帮忙啦,急着用的,谢谢啦
没有一个答案能通啊?还有其他的答案吗? 展开
package my;
import java.sql.*;
import java.util.*;
public class PageQueryJB
{
private Connection con=null;
private Statement st=null;
private ResultSet rs=null;
private ArrayList list=new ArrayList();
int totalPage=0;//总页数
int pageSize=5; //一页中总记录数
int currentPage=0; //当前页号
int totalRecord=0;//总记录数
int firstRecord=0;
public ArrayList pageQuery(String s,int pageNO)
{try
{DBConnection db=new DBConnection();
con=db.getConnection();
st=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
currentPage=pageNO;
String sql=null;
StringTokenizer token=new StringTokenizer(s," ");
while(token.hasMoreTokens())
{
String temp=token.nextToken();
if(sql==null)
{
sql=" title like '%"+temp+"%' ";
}
else{
sql=sql+" and title like '%"+temp+"%' ";
}
}
sql="select title,type,price into 信息表 from titles where "+sql;
rs=st.executeQuery(sql);
if(!rs.last())
{
return list;
}
totalRecord=rs.getRow(); //获得总记录数
if(totalRecord%pageSize == 0)
{
totalPage=totalRecord/pageSize;
}
else
{
totalPage=totalRecord/pageSize+1;
}
if(currentPage>totalPage)
return list;
else
firstRecord=(currentPage-1)*pageSize+1;
rs.absolute(firstRecord-1);
int counter=1;
while( rs.next() && counter<=pageSize)
{
QueryVO vo=new QueryVO();
int n=rs.getRow();
vo.setRecID(String.valueOf(n));
vo.setTitle(rs.getString("title"));
vo.setType(rs.getString("type"));
vo.setPrice(rs.getString("price"));
list.add(vo);
counter++;
}
rs.close();
st.close();
con.close();
}
catch(Exception e)
{
System.out.println("数据库查询出错:"+e);
}
finally
{
rs=null;
st=null;
con=null;
}
return list;
}
////////////////////
public int getTotalPage()
{
return totalPage;
}
public int getPrepage()
{
int prePage=0;
if(currentPage>1)
prePage=currentPage-1;
else
prePage=1;
return prePage;
}
public int getNextPage()
{
int next;
if(currentPage==totalPage)
next=totalPage;
else
next=currentPage+1;
return next;
}
}
没有“into 信息表”就可以查出来,添加了后就没办法查出来了,各位帮忙看看,我需要把查询出来的结果存入到信息表中。谢谢啦
sql="select title,type,price into 信息表 from titles where "+sql;
rs=st.executeQuery(sql);
错误提示信息:数据库查询出错:java.lang.nullpointerException
各位帮帮忙啦,急着用的,谢谢啦
没有一个答案能通啊?还有其他的答案吗? 展开
展开全部
两种
1.sql= " drop table 信息表 select title,type,price into 信息表 from titles where "+sql;
这种是先删除信息表,再新建一张信息表,把select的结果插入
2.sql= "insert into 信息表 select title,type,price from titles where "+sql;
这种是直接往已经存在在表中插入数据
那说明不是你显示那段SQL有问题
你WHERE后面那部分可能有问题,你没显示我也不好判断具体什么问题
1.sql= " drop table 信息表 select title,type,price into 信息表 from titles where "+sql;
这种是先删除信息表,再新建一张信息表,把select的结果插入
2.sql= "insert into 信息表 select title,type,price from titles where "+sql;
这种是直接往已经存在在表中插入数据
那说明不是你显示那段SQL有问题
你WHERE后面那部分可能有问题,你没显示我也不好判断具体什么问题
展开全部
sql="select title,type,price into 信息表 from titles where "+sql;
你把你写的这句放到数据库中直接执行,看看是什么错误。
还有就是你要往 信息表里写数据,应该这么写:
insert into 信息表 select title,type,price from titles where "+sql;
这里的信息表的字段和 titles表的对应字段的类型要相同。
希望能帮到你
你把你写的这句放到数据库中直接执行,看看是什么错误。
还有就是你要往 信息表里写数据,应该这么写:
insert into 信息表 select title,type,price from titles where "+sql;
这里的信息表的字段和 titles表的对应字段的类型要相同。
希望能帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是这样的,你select into一个表是新建一个表
所以你可以在前面先判断有没有这个表,有则删掉
所以你可以在前面先判断有没有这个表,有则删掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空指针!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询