1.新建一个web project

2.首先生成Hibernate Facet

3.Hibernate Facet 安装步骤

4.然后是spring facet安装步骤

5.最后是struts facet 的配置

6.最后的整体布局如下所示

7.在服务器上运行,发现如下错误:

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to requested type [javax.sql.DataSource]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)........

主要是没有在applicationContext.xml中配置 DataSource 这个bean,配置好后将其注入sessionFactory

<!--新加入 datasource --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/hjzgg_test?characterEncoding=UTF-8" /><property name="username" value="root" /><property name="password" value="hjzgg5211314" /></bean><bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml"></property><!--新加入 将dataSource注入到sessionFactory中 --><property name="dataSource" ref="dataSource"></property><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=truehibernate.format_sql=falsehibernate.cache.use_second_level_cache=truehibernate.cache.use_query_cache=falsehibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider hibernate.current_session_context_class=thread <!-- 解决Hibernate4 No Session found for current thread -->
</value> </property>

8.新建PersonDao(DAO层),它的实现类PersonDaoImpl,以及 Action类 LoginAction

在applicationContext.xml中添加如下代码:

    <bean id="personDao" class="com.xunchang.PersonDaoImpl"><!-- 采用依赖注入传入SessionFactory的引用 --><property name="sessionFactory" ref="sessionFactory"/></bean><bean id="login" class="com.xunchang.LoginAction">       <property name="personDao" ref="personDao"/></bean>

9.POJO 与 hibernate层:新建POJO(普通java类, 对于每一个变量拥有getter 和 setter方法),新建 映射hibernate持久化类person.cfg.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.xunchang"><class name="Person" table="home402"><!-- 定义持久化类的表示属性 --><id name="personId" column="personId" type="java.lang.Integer"><!-- 定义主键生成策略 --><generator class="identity"/></id><property name="person_name" column="person_name" type="java.lang.String"/><property name="person_age" column="person_age" type="java.lang.Integer"/></class>
</hibernate-mapping>

然后在applicationContext.xml中的sessionFactory(bean)中加载该映射文件如下:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml"></property><!--新加入 将dataSource注入到sessionFactory中 -->.............<!--通过配置文件的方式获取数据源--><property name="mappingResources"><list><!-- 以下用来列出所有的PO映射文件 --><value>person.cfg.xml</value></list></property>       </bean>

10.运行服务器,问题又来了,如下:

org.hibernate.HibernateException: No Session found for current threadorg.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1041)com.xunchang.PersonDaoImpl.getSession(PersonDaoImpl.java:16)com.xunchang.PersonDaoImpl.findAllPerson(PersonDaoImpl.java:63)com.xunchang.LoginAction.execute(LoginAction.java:20)sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Hibernate4 No Session found for current thread原因:  http://www.yihaomen.com/article/java/466.htm

解决方法:在applicationContext.xml中的sessionFactory 中<property name="hibernateProperties"></property>加入 hibernate.current_session_context_class=thread

 <property name="hibernateProperties"><value>......hibernate.current_session_context_class=thread <!-- 解决Hibernate4 No Session found for current thread --></value> </property>

11.最后一个问题就是hibernate 中文乱码,解决方案如下:

//写一个字符集过滤器import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
public   class   SetCharacterEncodingFilter   extends   HttpServlet   implements   Filter  {public   void   doFilter(ServletRequest   request,   ServletResponse   response,   FilterChain   chain)  throws   ServletException,   IOException   { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); chain.doFilter(request,   response); } public   void   init(FilterConfig   config)   throws   ServletException{ } public   void   destroy(){ }
}

//在web.xml中加入如下代码,问题解决

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>com.xunchang.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

转载于:https://www.cnblogs.com/hujunzheng/p/4366980.html

s2sh框架搭建(辅助工具:MyEclipse)及解决一些遇到的问题相关推荐

  1. s2sh框架搭建(基于spring aop)

    对于spring aop 是如何管理事务的,请看一下:http://bbs.csdn.net/topics/290021423 1.applicationContext.xml <?xml ve ...

  2. s2sh框架搭建mysql_S2SH项目框架搭建(完全注解)

    1.引入相关jar包 2.配置Spring配置文件,命名为applicationContext.xml(配置好后放到src目录下) xmlns:xsi="http://www.w3.org/ ...

  3. 计算机网络布线画图软件,一种计算机网络布线辅助工具的制作方法

    本实用新型涉及计算机网络布线辅助工具技术领域,具体为一种计算机网络布线辅助工具. 背景技术: 综合布线是一种模块化的.灵活性极高的建筑物内或建筑群之间的信息传输通道,通过它可使话音设备.数据设备.交换 ...

  4. [转载]SSH框架搭建详细图文教程

    什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hiber ...

  5. ssm+maven+eclipse框架搭建

    ssm框架搭建 因为之前没有独立搭建过ssm框架,做的项目也都是从视频上看着照做,没有自己的想法,也不符合自己的意愿,同时对ssm整合的了解并没有起到太大的作用,所以自己尝试搭建了一个ssm的框架,现 ...

  6. javaweb成长之路:SSM框架搭建

    学习javaweb开发,框架的学习是难以避免的,合理的使用框架进行开发,可以很大程度的提升开发效率,减少开发者的工作量.随着it行业的不断发展,各种框架也是层出不穷,目前使用最广的框架应该是属于ssm ...

  7. 基于全注解的SpringMVC+Spring4.2+hibernate4.3框架搭建

    概述 从0到1教你搭建spring+springMVC+hibernate整合框架,基于注解. 本教程框架为基于全注解的SpringMVC+Spring4.2+hibernate4.3,开发工具为my ...

  8. mysql语句生成工具_强烈推荐一款MySQL语句优化辅助工具,值得收藏

    概述 优化SQL,是DBA常见的工作之一.如何高效.快速地优化一条语句,是每个DBA经常要面对的一个问题.对于一名DBA来说,掌握一门语言配合自己的工作是非常必要的.相对于shell的简单.perl的 ...

  9. 分享五款java学习辅助工具,总有你用的上的~

    想要学好java技术,除了自身的努力,辅助工具也不缺少,辅助工具可以帮助大家在今后的工作中可以提高工作效率,下面小编就来分享五款java学习辅助工具,总有你用的上的~ 五款java学习辅助工具: 1. ...

最新文章

  1. 什么是算法,什么是数据结构
  2. python requests库详解_python的requests库详解
  3. JAVA 判断Socket 远程端是否断开连接
  4. selenium (二)
  5. redis用list做消息队列
  6. 智乃的数据库(STL+小技巧)
  7. 【HDU6051】if the starlight never fade
  8. arcgis oracle srid,ArcGIS——数据库空间SQL(二、oracle中ST_GEOMETRY函数使用)
  9. 远程计算机上不接受445端口,服务器禁止远程445端口
  10. MapProxy的部署与TMS地图服务代理
  11. notes系统服务器地址,在Notes客户端和Domino服务器上,服务器地址的缓存(Cache)存放在哪里...
  12. 南非认证_南非2008-避免或尽量减少时差
  13. html实现拼图游戏,html、css、js实现拼图游戏
  14. python库——h5py读取h5文件
  15. Go语言圣经 - 第3章 基础数据类型
  16. web的标准网页设计与php课后,web网页设计尺寸规范
  17. 感人的小故事,谁懂谁就会流泪
  18. 推荐|如何利用碎片化时间学习?
  19. 我愿称之为史上最全的深度学习面经总结(附答案详解)
  20. 历史上著名的三次崩盘

热门文章

  1. 学计算机的如何学英语,怎么在电脑上学习英语
  2. apache 统计404日志_Apache监控与调优(四)Apachetop监控
  3. vue2.x vant2.x H5 移动端脚手架
  4. VS Code 切换大小写
  5. linux 添加sftp用户
  6. linux上传下载文件命令rz、sz
  7. SLF4JLogFactory does not implement org.apache.commons.logging.LogFactory
  8. _Mycat-Web之UI监控
  9. Vite --- 创建Vue3项目
  10. Java-打印三角形