添加评论500报错
username的字段名不知道哪里错了。。
Comment.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version= "1.0" encoding= "utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace= "com.imooc.bbs.dao.CommentDao" > <resultMap id= "comment" type= "Comment" > <id property= "id" column= "id" javaType= "Integer" /> <result property= "userId" column= "user_id" javaType= "Integer" /> <result property= "username" column= "username" javaType= "String" /> <result property= "content" column= "content" javaType= "String" /> <result property= "createTime" column= "create_time" javaType= "java.util.Date" /> <result property= "postId" column= "post_id" javaType= "Integer" /> </resultMap> <insert id= "insert" parameterType= "Comment" useGeneratedKeys= "true" > insert into comment(user_id,username,content,create_time,post_id) values (#{userId},${username},#{content},#{createTime},#{postId}) </insert> <select id= "selectByPid" parameterType= "Integer" resultMap= "comment" > select * from comment where post_id=#{pid} </select> </mapper> |
controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Controller ( "commentController" ) @RequestMapping ( "/comment" ) public class CommentController { @Autowired private CommentBiz commentBiz; @RequestMapping (value = "/add" ,params = "pid" ) public String add(Integer pid,Comment comment){ commentBiz.add(comment); return "redirect:/post/get?id=" +pid; } } |
biz
1 2 3 4 5 6 7 8 9 10 | @Service ( "commentBiz" ) public class CommentBizImpl implements CommentBiz { @Autowired @Qualifier ( "commentDao" ) private CommentDao commentDao; public void add(Comment comment) { commentDao.insert(comment); } |
页面
1 2 3 4 5 6 7 8 9 10 11 | <form:form method= "POST" action= "/comment/add?pid=${post.id}" accept-charset= "UTF-8" id= "thread_create_form" class = "create_form" modelAttribute= "comment" > <form:input type= "hidden" path= "postId" value= "${post.id}" /> <form:input type= "hidden" path= "userId" value= "${user.id}" /> <form:input type= "hidden" path= "username" value= "${user.username}" /> <div class = "form-group" > <form:textarea cssClass= "post-editor form-control" rows= "5" style= "overflow:hidden" path= "content" placeholder= "请使用Markdown撰写内容" cols= "50" ></form:textarea> </div> <div class = "form-group status-post-submit" > <input class = "btn btn-primary col-xs-2" id= "thread-create-submit" type= "submit" value= "回复" > </div> </form:form> |
12
收起
正在回答 回答被采纳积分+1
5回答
hblack
2019-11-09 16:35:07
报错信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 09 -Nov- 2019 16 : 04 : 57.640 信息 [RMI TCP Connection( 3 )- 127.0 . 0.1 ] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath 09 -Nov- 2019 16 : 04 : 58.125 信息 [RMI TCP Connection( 3 )- 127.0 . 0.1 ] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet 'springMVC' 09 -Nov- 2019 16 : 32 : 47.541 严重 [http-nio- 8080 -exec- 10 ] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [springMVC] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null ) to be returned by selectOne(), but found: 2 ] with root cause org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null ) to be returned by selectOne(), but found: 2 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java: 81 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) at java.lang.reflect.Method.invoke(Method.java: 498 ) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java: 433 ) at com.sun.proxy.$Proxy19.selectOne(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java: 166 ) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java: 82 ) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java: 59 ) at com.sun.proxy.$Proxy23.selectById(Unknown Source) at com.imooc.bbs.biz.impl.PostBizImpl.getById(PostBizImpl.java: 36 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) at java.lang.reflect.Method.invoke(Method.java: 498 ) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 317 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java: 190 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 157 ) at org.springframework.transaction.interceptor.TransactionInterceptor$ 1 .proceedWithInvocation(TransactionInterceptor.java: 98 ) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java: 262 ) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java: 95 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 179 ) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java: 92 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 179 ) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java: 207 ) at com.sun.proxy.$Proxy24.getById(Unknown Source) at com.imooc.bbs.controller.PostController.get(PostController.java: 51 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) at java.lang.reflect.Method.invoke(Method.java: 498 ) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java: 215 ) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java: 132 ) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java: 104 ) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java: 749 ) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java: 690 ) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java: 83 ) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java: 945 ) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java: 876 ) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java: 961 ) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java: 852 ) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 634 ) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java: 837 ) at javax.servlet.http.HttpServlet.service(HttpServlet.java: 741 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 231 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 166 ) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java: 52 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 193 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 166 ) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 199 ) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 96 ) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 528 ) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 139 ) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 81 ) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java: 678 ) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 87 ) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 343 ) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java: 798 ) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java: 66 ) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java: 810 ) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java: 1500 ) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java: 49 ) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1149 ) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 624 ) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java: 61 ) at java.lang.Thread.run(Thread.java: 748 ) |
Post实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | public class Post { private Integer id; private String username; private String title; private String category; private String content; private String tag; private Date createTime; private User user; private List<Comment> comments; public List<Comment> getComments() { return comments; } public void setComments(List<Comment> comments) { this .comments = comments; } public User getUser() { return user; } public void setUser(User user) { this .user = user; } public Integer getId() { return id; } public void setId(Integer id) { this .id = id; } public String getUsername() { return username; } public void setUsername(String username) { this .username = username; } public String getTitle() { return title; } public void setTitle(String title) { this .title = title; } public String getCategory() { return category; } public void setCategory(String category) { this .category = category; } public String getContent() { return content; } public void setContent(String content) { this .content = content; } public String getTag() { return tag; } public void setTag(String tag) { this .tag = tag; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this .createTime = createTime; } } |
hblack
2019-11-09 15:30:10
postDao
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?xml version= "1.0" encoding= "utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace= "com.imooc.bbs.dao.PostDao" > <resultMap id= "post" type= "Post" > <id property= "id" column= "id" javaType= "Integer" /> <result property= "username" column= "username" javaType= "String" /> <result property= "title" column= "title" javaType= "String" /> <result property= "category" column= "category" javaType= "String" /> <result property= "content" column= "content" javaType= "String" /> <result property= "tag" column= "tag" javaType= "String" /> <result property= "createTime" column= "create_time" javaType= "java.util.Date" /> <!-- <association property= "user" column= "username" javaType= "User" > <id property= "id" column= "uid" javaType= "Integer" /> <result property= "username" column= "uname" javaType= "String" /> </association> --> <collection property= "comments" column= "id" ofType= "Comment" select= "com.imooc.bbs.dao.CommentDao.selectByPid" /> </resultMap> <insert id= "insert" parameterType= "Post" useGeneratedKeys= "true" > insert into post(username,title,category,content,tag,create_time) values (#{username},#{title},#{category},#{content},#{tag},#{createTime}) </insert> <delete id= "delete" parameterType= "Integer" > delete from post where id=#{id} </delete> <select id= "selectAll" resultMap= "post" > select * from post </select> <select id= "selectByUsername" parameterType= "String" resultMap= "post" > select * from post where username=#{username} </select> <select id= "selectById" parameterType= "Integer" resultMap= "post" > select p.*,c.* from post p left join comment c on p.id=c.post_id where p.id=#{id} </select> </mapper> |
postController
1 2 3 4 5 6 7 8 | @RequestMapping (value = "/get" ,params = "id" ) public String get(Integer id, Map<String,Post> map, Map<String, Object> commentMap, Map<String, Object> newComment){ Post post = postBiz.getById(id); map.put( "post" ,post); commentMap.put( "comments" , commentBiz.getByPid(id)); newComment.put( "comment" , new Comment()); return "postDetail" ; } |
postBizImpl
1 2 3 | public Post getById(Integer id) { return postDao.selectById(id); } |
相似问题
登录后可查看更多问答,登录/注册
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧