JSP连接MySql数据库进行查询时出的问题
sql="selectempno,ename,job,hiredate,sal,commfromempwhereempnolike?orenamelike?or"+"jo...
sql = "select empno,ename,job,hiredate,sal,comm from emp where empno like ? or ename like ? or " +
"job like ? or hiredate LIKE ? OR sal LIKE ? OR comm LIKE ? limit ?,?";
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,"%"+keyWord+"%") ;
pstmt.setString(2,"%"+keyWord+"%") ;
pstmt.setString(3,"%"+keyWord+"%") ;
pstmt.setString(4,"%"+keyWord+"%") ;
pstmt.setString(5,"%"+keyWord+"%") ;
pstmt.setString(6,"%"+keyWord+"%") ;
pstmt.setInt(7,(currentPage-1) * lineSize) ;
pstmt.setInt(8,lineSize) ;
rs = pstmt.executeQuery() ;
如上面的代码,可以正常编译运行,但如果查询的是数字,比如empno中的内容或者sal,comm中的内容这时正常运行,如果查询姓名输入汉字,则报错,帮忙看看问题出在哪吧,谢谢~ 展开
"job like ? or hiredate LIKE ? OR sal LIKE ? OR comm LIKE ? limit ?,?";
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,"%"+keyWord+"%") ;
pstmt.setString(2,"%"+keyWord+"%") ;
pstmt.setString(3,"%"+keyWord+"%") ;
pstmt.setString(4,"%"+keyWord+"%") ;
pstmt.setString(5,"%"+keyWord+"%") ;
pstmt.setString(6,"%"+keyWord+"%") ;
pstmt.setInt(7,(currentPage-1) * lineSize) ;
pstmt.setInt(8,lineSize) ;
rs = pstmt.executeQuery() ;
如上面的代码,可以正常编译运行,但如果查询的是数字,比如empno中的内容或者sal,comm中的内容这时正常运行,如果查询姓名输入汉字,则报错,帮忙看看问题出在哪吧,谢谢~ 展开
2个回答
展开全部
%左右加单引号
左边%的左边,右边%的右边
左边%的左边,右边%的右边
更多追问追答
追问
好像语法有错误写上去就画波浪线
追答
“‘%” + keyword + "%'"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-06
展开全部
把你拼接后的sql语句放到mysql中执行看看出现什么错误
更多追问追答
追问
如果输入的是数字,比如empno,sal这些的内容都是数字,就没错,输入ename的内容就有错,(一次只会输入一个,模糊查询么,只要有任意一个匹配都能查出来),好像就是因为中文必须加''才能查,但把引号加上还是报错就像这样“‘%” + keyword + "%'"
追答
你在数据库上执行时报的是什么错,把你拼接后的在数据库上执行的语句贴出来吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询