问题描述
想做一个修改库存的代码,结果运行后也不报错但就是无法得出结果。这是小弟impl中的方法//修改库存publicbooleanmodifyBook(intbid,intcount){booleanflag=false;Stringsql="updatebookssetstock=stock-"+count+"wherebid="+bid;Connectionconn=this.getConnection();try{Statementst=conn.createStatement();flag=st.executeUpdate(sql)==1;this.close(null,st,conn);}catch(SQLExceptione){e.printStackTrace();}returnflag;}这是servlet中的方法publicclassStockServletextendsHttpServlet{@Overrideprotectedvoidservice(HttpServletRequestarg0,HttpServletResponsearg1)throwsServletException,IOException{arg0.setCharacterEncoding("utf-8");PrintWriterout=arg1.getWriter();booleanflag=false;intbid=arg0.getParameter("bid")==null?0:Integer.parseInt(arg0.getParameter("bid").toString());intcount=arg0.getParameter("count")==null?0:Integer.parseInt(arg0.getParameter("count").toString());flag=newBookDaoimpl().modifyBook(bid,count);out.print("<scripttype='text/javascript'>");if(flag){out.print("alert('购买成功');location.href='index';");}else{out.print("alert('购买失败');location.href='index';");}out.print("</script>");out.flush();out.close();}}web.xml<servlet><servlet-name>stock</servlet-name><servlet-class>com.xt.bookstore.servlet.StockServlet</servlet-class></servlet><servlet-mapping><servlet-name>stock</servlet-name><url-pattern>/stock</url-pattern></servlet-mapping>jsp页面代码<formaction="stock"method="post"><table><tr><tdcolspan="2">图书简要介绍</td></tr><tr><th>书名</th><td>${bookdetail.bookName}</td></tr><tr><th>单价</th><td>${bookdetail.price}</td></tr><tr><th>图片</th><td>${bookdetail.image}</td></tr><tr><th>库存</th><td>${bookdetail.stock}</td></tr><tr><th>请输入购买数量</th><td><inputtype="text"name="count"/></td></tr><tr><th>购买者</th></tr><tr><th><inputtype="submit"value="购买"/></th><td><ahref="index.jsp">返回</a></td><td><inputtype="text"value="${bookdetail.bid}"name="id"style="display:none"/></td></tr></table></form>点击购买按钮后就出现四个问号,请问如何解决?
解决方案
解决方案二:
我觉得sql语句有错的问题大一些
解决方案三:
Stringsql="updatebookssetstock=stock-"+count+"wherebid="+bid;这行又问题,改成Stringsql="updatebookssetstock=stock-"+count+"wherebid="+bid;
解决方案四:
四个问号会不会是文字没显示出来呢
解决方案五:
我想问下,你的数据是在哪里存的?找了半天没找到
解决方案六:
考虑下是不是中文乱码
解决方案七:
他都没运行成功,他取值取错了,还有中文乱码问题
解决方案八:
可以打上断点调试,很快就能知道为什么
解决方案九:
估计是中文乱码
解决方案十:
Stringsql="updatebookssetstock=stock-"+count+"wherebid="+bid;sql语句里面涉及到拼接字符串的时候要用单引号引起来。Stringsql="updatebookssetstock=‘stock-"+count+"’wherebid=‘"+bid+“,”;
解决方案十一:
楼主最好能贴上截图,有图容易分析问题
解决方案十二:
arg1.setContentType("text/html;charset=utf-8");给response返回的设置下编码
解决方案十三:
引用11楼qq840727854的回复:
arg1.setContentType("text/html;charset=utf-8");给response返回的设置下编码
顶
解决方案十四:
有问号表示有数据啊,但是乱码了···