@RequestMapping(value="/liuyan")
public ModelAndView liuyan(@RequestParam(value="liuyan", required=false) String liuyan,
HttpSession httpSession){
System.out.println(liuyan);
String sql = "select * from story where sname = '"+liuyan+"'";
System.out.println(sql);
String viewname="";
final int[] isExist = new int[1];
isExist[0] = 0;
jt.query(sql, new RowCallbackHandler(){
public void processRow(ResultSet rs) throws SQLException {
if (rs.isFirst()) {
isExist[0]=1;
}
}
});
if(isExist[0]==1) {
String sql1 ="select * from '"+liuyan+"' limit 0,1000";
System.out.println(sql1);
viewname = "liuyan";
final List<liuyan>liuyans = new ArrayList<liuyan>();
jt.query(sql1, new RowCallbackHandler(){
public void processRow(ResultSet rs1) throws SQLException {
System.out.println(rs1.getFetchSize());
while (!rs1.isAfterLast()) {
liuyan liuyanss = new liuyan(rs1.getString(1),
rs1.getInt(2),
rs1.getString(3),
rs1.getString(4));
liuyans.add(liuyanss);
System.out.println(liuyans);
rs1.next();
}
}
});
httpSession.setAttribute("liuyan", liuyan);
System.out.println(liuyans.size());
ModelAndView mv = new ModelAndView(viewname);
mv.addObject("liuyans", liuyans);
return mv;
} else {
httpSession.setAttribute("liuyan", liuyan);
viewname = "chaxun_failed";
ModelAndView mv = new ModelAndView(viewname);
mv.addObject("liuyan", liuyan);
return mv;
}
}
第二个就是这个数据库的表,第三个是报错情况,第一个是输入框
很明显,是你String sql1 ="select * from '"+liuyan+"' limit 0,1000"; 这个sql有问题,表名都没有,liuyan是您转的表名吗?
limit,mysql数据库可以用,其他数据库不行
mysql可以用limit,oracle,sqlsever用rownumber
语法错误了,好好看看sql,表名没有
很明显,是你String sql1 ="select * from '"+liuyan+"' limit 0,1000"; 这个sql有问题,表名都没有, from什么呢,**不应该加单引号**
if(isExist[0]==1) {
String sql1 ="select * from '"+liuyan+"' limit 0,1000";
这一行的sql写错了,你把sname的参数当成表名拼写到sql里,按照你的业务,应该改成
"select * from story where sname = '"+liuyan+"' limit 0,1000"
from 后面跟数据库名字
按照你的查询需求,oracle可以这样查
select * from (select t1.*,rownum rn from(select t.* ,t.rowfrom 表名 where text like "%"+名字 +"%")t1 where rownum <=endRow) where rn>=beginRow;