Myeclipse2017 SSH整合

1.添加Spring支持

   新建项目,右键项目 >Configure Facets>install Spring Facet

                         

     Spring支持添加完成后,src下会生成一个applicationContext.xml文件且Web.xml中也会自动生成如下配置。

       

2.添加SpringMVC支持

   Spring集成的有SpringMVC,所以只需要进行相关的配置即可。

   1.在src根目录下创建spring-servlet.xml,配置如下:

   

   2.Web.xml添加如下配置:


   OK,到这里Spring+SpringMVC已配置完毕。可以编写Controller层代码进行测试

      

        路径:http://localhost:8080/Test/hello

3.添加Hibernate支持

  1.新建链接DB [如果已有可跳过]

    window>Show View>DB Browser>右键 new

                       

  2.添加Hibernate支持

     1.与添加Spring支持类似:右键项目>Configure Facets>install Hibernate Facet

               next>

                  >next   


      2.在applicationContext.xml手动添加数据库驱动


                              

   到这里Spring4.1+SpringMVC+Hibernate4.1就已经整合完毕了。

   然后我配置一个HibernateTemplate4,用来进行CRUD操作,结果进行持久化时出现了如下错误:          

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

  异常信息内容大概是,不允许在只读事务下进行写的操作。然后又百度了一波,大致原因是因为:Spring默认的事务是只读事务(readyOnly=true),不能进行增删改的操作。然后我在增删改的方法上加上了@Transactional(readyOnly=false),然后执行成功。

  第一次写博客,如有错误请指出。谢谢

          

              


 

猜你喜欢

转载自blog.csdn.net/qq_39914581/article/details/80716028