第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

模糊查詢使用占位符出現(xiàn)問題

public?class?ListServlet?extends?HttpServlet{
????@Override
????protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)
????????????throws?ServletException,?IOException?{
????????//?TODO?Auto-generated?method?stub
????????try?{
????????????req.setCharacterEncoding("UTF-8");
????????????//首先不管是不是第一次查看列表頁面,先得到查詢條件
????????????String?command=(String)?req.getParameter("command");
????????????String?description=(String)?req.getParameter("description");
????????????req.setAttribute("command",?command);
????????????req.setAttribute("description",?description);
????????????Connection?connection=ConnectionDB.getConnection();
????????????StringBuilder?sql=new?StringBuilder("select?ID,COMMAND,DESCRIPTION,CONTENT?from?message?where?1=1");
????????????//判斷得到的參數(shù)是不是空,還有是不是空字符串,把條件存放在集合中,因?yàn)槭褂昧苏嘉环逻呉M(jìn)行賦值
????????????List<String>?list=new?ArrayList<String>();
????????????if(command!=null?&&?!command.trim().equals("")){
????????????????sql.append("?and?COMMAND?=??");
//????????????????sql.append("?and?COMMAND?=?"+command);
????????????????list.add(command);
????????????}
????????????if(description!=null?&&?!description.trim().equals("")){
????????????????sql.append("?and?DESCRIPTION?like?'%'?'%'");
//????????????????sql.append("?and?DESCRIPTION?like?'%"+description+"%'");
????????????????list.add(description);
????????????}
//????????????System.out.println(sql);
????????????PreparedStatement?statement=connection.prepareStatement(sql.toString());
????????????for(int?i=0;i<list.size();i++){
????????????????statement.setNString(i+1,list.get(i));
????????????}
????????????ResultSet?rs=statement.executeQuery();
????????????List<Message>?messages=new?ArrayList<Message>();
????????????while(rs.next()){
????????????????Message?message=new?Message();
????????????????message.setId(rs.getInt("ID"));
????????????????message.setCommand(rs.getString("COMMAND"));
????????????????message.setDescription(rs.getString("DESCRIPTION"));
????????????????message.setContent(rs.getString("CONTENT"));
????????????????messages.add(message);
????????????}
????????????//跳轉(zhuǎn)界面
????????????req.setAttribute("messageList",?messages);
????????????req.getRequestDispatcher("/WEB-INF/jsp/list.jsp").forward(req,?resp);
????????}?catch?(SQLException?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}
????}

不明白為什么這樣使用占位符會報(bào)錯(cuò)!?。。。?/p>

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
?? ?at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
?? ?at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
?? ?at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
?? ?at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
?? ?at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3729)
?? ?at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3713)
?? ?at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4553)
?? ?at com.mysql.jdbc.PreparedStatement.setNString(PreparedStatement.java:5262)
?? ?at com.company.servlet.ListServlet.doGet(ListServlet.java:55)
?? ?at com.company.servlet.ListServlet.doPost(ListServlet.java:80)
?? ?at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
?? ?at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
?? ?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
?? ?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
?? ?at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
?? ?at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
?? ?at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
?? ?at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
?? ?at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
?? ?at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
?? ?at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
?? ?at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
?? ?at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
?? ?at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
?? ?at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
?? ?at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
?? ?at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
?? ?at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
?? ?at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
?? ?at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
?? ?at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
?? ?at java.lang.Thread.run(Thread.java:745)

我也換了其他的方式,但是就是一直報(bào)這個(gè)錯(cuò)誤,我也是服了,我感覺我沒有什么問題的呀?。。?!

正在回答

5 回答

你第二個(gè)問號很明顯是中文字符吧

0 回復(fù) 有任何疑惑可以回復(fù)我~

在使用占位符進(jìn)行模糊查詢時(shí)不能把問號放在引號里面,問號的位置必須跟字段名同級;

因此要實(shí)現(xiàn)的話把("?and?DESCRIPTION?like?'%'?'%'")改為("?and?DESCRIPTION?like ?"),在賦值的時(shí)候給定通配符就好了;

statement.setNString(i+1,"%"+list.get(i)+"%");這樣就能實(shí)現(xiàn)了。

0 回復(fù) 有任何疑惑可以回復(fù)我~

31行,是setString(), ? 不是NString

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

sakura_fc 提問者

我試過setString,后來才改成setNString的,不可以。
2016-12-12 回復(fù) 有任何疑惑可以回復(fù)我~

??? 要不你試試 把你24行的漢字的問號改成英語半角的?

0 回復(fù) 有任何疑惑可以回復(fù)我~

? ? ? ? ? ??if(description!=null?&&?!description.trim().equals("")){

????????????????sql.append("?and?DESCRIPTION?like?'%'?'%'");

//????????????????sql.append("?and?DESCRIPTION?like?'%"+description+"%'");

????????????????list.add(description);

????????????}

寫成like '%?%'試試?

http://381234609.iteye.com/blog/1063251

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
通過自動回復(fù)機(jī)器人學(xué)Mybatis---基礎(chǔ)版
  • 參與學(xué)習(xí)       107413    人
  • 解答問題       830    個(gè)

微信公眾號自動回復(fù)功能學(xué)習(xí)Mybatis,基礎(chǔ)教程加案例實(shí)戰(zhàn)方式學(xué)習(xí)

進(jìn)入課程

模糊查詢使用占位符出現(xiàn)問題

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號