action类:
@RequestMapping(value = "/modifyTouristNickNameByTouristId.do") public void modifyTouristNickNameByTouristId(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setCharacterEncoding("utf-8"); response.setHeader("Access-Control-Allow-Origin", "*"); int touristId = Integer.parseInt(request.getParameter("touristId")); String touristNickName = request.getParameter("touristNickName"); boolean b1 = false; boolean b2 = false; TouristInfo touristInfo = iTouristDetailInfoService.getTouristInfoByTouristNickName(touristNickName); if (touristInfo == null){ b1 = iTouristDetailInfoService.modifyTouristNickNameByTouristId(touristId,touristNickName); b2 = true; } JSONObject jsonObject = new JSONObject(); jsonObject.put("modifyStatus",b1); jsonObject.put("QueryStatus",b2); Object o = JSONObject.toJSON(jsonObject); response.getWriter().write(o.toString()); response.getWriter().flush(); response.getWriter().close(); }service实现类:
@Override public boolean modifyTouristNickNameByTouristId(int touristId, String touristNickName) { Boolean b = false; b = iTouristDetailInfoDao.modifyTouristNickNameByTouristId(touristId,touristNickName); return b; }dao实现类:
@Override public boolean modifyTouristNickNameByTouristId(int touristId, String touristNickName) { /** * set方法出现bug,service层无法返回参数,报错AopUtils.java * @author JSC * @time 2017-12-05 */方法一 /*TouristInfo touristInfo = findTouristInfoByTouristId(touristId); touristInfo.setTouristNickName(touristNickName); Boolean b = false; b = this.saveOrUpdate(touristInfo); if(b){ return true; }else{ return false; }*/
/*方法二:*/ Session session = this.getSession(); String sql = "UPDATE `游客信息` SET `用户名` = ? WHERE `用户ID` = ? AND `是否启用` = '1' AND `游客状态` = '1'"; int i = session.createSQLQuery(sql) .setParameter(0,touristNickName) .setParameter(1,touristId) .executeUpdate(); if(i == 1){ return true; }else{ return false; } }basedao实现类:
public <T> boolean saveOrUpdate(T t) { boolean flag = false; this.hibernateTemplate.saveOrUpdate(t); flag = true; return flag; }报错信息:tomcat Server并未报错,tomcat localhost log报错,信息如下:
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:361)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1080)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:75)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:757)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2287)
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)
总结问题描述:
在dao实现类中,方法一在dao层不会出错,但是在把参数返回到service实现层的时候就会出错,单步调试会跳转到AopUtils.java中,然后出想上述错误信息;
方法二用sql方式就不会报错,目前用此方法暂时解决;
希望大大佬们帮忙看看,小弟将不胜感激。