SSH框架整合-慕课课程

学习时间:2018年12月3日
慕课链接:基于SSH实现员工管理系统之框架整合篇
内容:Struts2+Hibernate+Spring框架整合,分为Struts2整合Spring和Spring整合Hibernate两步进行
源码:Github:SSH_Base

一、开发环境搭建

1. jar 包导入

2. 引入相关配置文件

  • web.xml-->Struts2 过滤器配置

    <!-- Struts2 过滤器的配置--><filter><filter-name>struts</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts</filter-name><url-pattern>/*</url-pattern></filter-mapping>    
  • struts2.xml -->src

    >struts-2.3.36-all.zip\struts-2.3.36\apps\struts2-blank-2.3.36.war\WEB-INF\classes\struts2.xml
    
  • web.xml -->Spring 核心监听器

    > ContextLoaderListener--> ContextLoader --> 105:contextConfigLocation
    <!-- Spring 核心监听器 --><listener><listener-class> org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>
  • applicationContext.xml

3. 创建包结构和实体


- 包结构:- com.ssh.action- com.ssh.dao-- com.ssh.domain - 实体 product- com.ssh.service

二、Struts2整合Spring

1. 页面创建

  • 使用struts2标签 布局页面
<s:form action="" method="post" namespace="/" theme="simple"><table border="1" width="400"><tr><td>商品名称:</td><td><s:textfield name="pname"/></td></tr><tr><td>商品价格:</td><td><s:textfield name="price"/></td></tr><tr><td colspan="2"><input type="submit" value="添加" /></td></tr></table>
</s:form>

2. 编写Action,Service,Dao的类

  • com.ssh.action

    ProductAction //商品管理的Action

    public class ProductAction extends ActionSupport implements ModelDriven<Product>{//^extends ActionSupport implements ModelDriven<Product> (模型驱动的接口)//模型驱动使用的类private Product product = new Product();@Overridepublic Product getModel() {// TODO Auto-generated method stubreturn product;}/*注入Service  struts2-spring-plugin-2.3.36.jar > struts-plugin.xml > struts.objectFactory>struts.objectFactory.spring.autoWire = name 自动装配*/    /*Struts 和Spring 整合过程中按名字自动注入业务层的类*/private ProductService productService;public void setProductService(ProductService productService) {this.productService = productService;}
    }
  • com.ssh.dao

    ProductDao //商品管理的DAO

  • com.ssh.domain

    实体 product

  • com.ssh.service

    ProductService //商品管理的业务层

    //业务层 注入Dao的类
    private ProductDao productDao;public void setProductDao(ProductDao productDao) {this.productDao = productDao;
    }    

3. 配置Action,Service,Dao的类

  • aplicationContext.xml 配置业务层的类 *

    <!-- 配置业务层的类 -->
    <bean id="productService" class="com.epoint.ssh.service.ProductService"><property name="productDao" ref="productDao"/>
    </bean><!-- 配置DAO的类 -->
    <bean id="productDao" class="com.epoint.ssh.dao.ProductDao">
    </bean>
  • Struts2和Spring整合的两种方式

    • (1) Action 类由Struts2 自身创建

      • struts2.xml————><s:form action="product_save" method="post" namespace="/" theme="simple">

        • 在applicationContext.xml中配置Service DAO 两个<bean>标签(上一步*)
    • (2)actio 类交给Spring创建

      <!--配置action类  -->
      <bean id="productAction" class="com.epoint.ssh.action.ProductAction" scope="prototype">  <!--手动注入service  --><property name="productService" ref="productService"></property>
      </bean>
      <package name="ssh" extends="struts-default" namespace="/"><action name="product_*" class="productAction" method="{1}" ></action>
      </package>
  • Action中执行的方法

三、Sprinng整合 Hibernate

1. 创建数据库

  • create database myssh

2. 创建映射文件 以及Spring中的配置

  • /ssh/src/com/epoint/ssh/domain/Product.hbm.xml

    --> /org/hibernate/hibernate-mapping-3.0.dtd
    <hibernate-mapping><class name="com.epoint.ssh.domain.Product" table="product"><id name="pid" column="pid"><generator class="native"/><!-- native表示自增 --></id> <property name="pname" column="pname" length="20"/><property name="price" column="price"/></class></hibernate-mapping>
  • applicationContext.xml

    <!-- 引入外部配置文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 配置连接池 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/myssh?useSSL=false"/><property name="user" value="root"/><property name="password" value="Gepoint"/>
    </bean>
    <!-- 配置Hibernate -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!--注入连接池  --><property name="dataSource" ref="dataSource"></property><!--配置Hibernate属性  --><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><!--方言  --><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop><prop key="hibernate.hbm2ddl.auto">update</prop>    </props></property><!--加载Hibernate配置文件  --><property name="mappingResources"><list><value>com/epoint/ssh/domain/Product.hbm.xml</value></list></property>
    </bean>

3. 编写DAO的代码

  • 注入SessionFactory:

    • 在 Dao 上extends HibernateDaoSupport
    • 配置applicationContext中的Dao
    <bean id="productDao" class="com.epoint.ssh.dao.ProductDao"><property name="sessionFactory" ref="sessionFactory"></property>
    </bean>        
  • 在Dao中调用模板完成保存操作

    this.getHibernateTemplate().save(product)
    

4. 添加事务管理

<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>    

5.问题

  • 错误1: Causedby:java.lang.ClassNotFoundException:com.mchange.v2.c3p0.ComboPooledDataSource

    解决:
    1.导入c3p0-0.9.2.1.jar和mchange-commons-java-0.2.3.4.jar(有的导入就解决,有的还会报错,报错的看第二步)
    2.对于 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><bean> 中的class不能直接复制粘贴,要通过“提示”敲出来,如果直接复制或者不按提示敲出来可能还会继续报同样的错误

  • 错误2:Loading class 'com.mysql.jdbc.Driver'. This is deprecated.

    解决:
    com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver

  • 错误3:MYSQL:WARN: Establishing SSL connection without server's identity verification is not recommended.

    解决:
    jdbc:mysql://localhost:3306/test?useSSL=false

  • 错误4: java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)

    解决:
    参考:java.sql.SQLException

SSH框架整合-慕课课程相关推荐

  1. 【struts2+spring+hibernate】ssh框架整合开发

    SSH框架整合 1 Struts2+Spring+Hibernate导包 Struts2导入jar包: * struts2/apps/struts2-blank.war/WEB-INF/lib/*.j ...

  2. SSH框架整合——基于注解

    SSH框架整合--基于注解 @(Spring)[Spring, hibernate, struts2, 框架整合] SSH框架整合基于注解 SSH框架整合 第一步导入Jar包 第二步导入配置文件 第三 ...

  3. SSH框架整合——基于XML配置文件

    SSH框架整合--基于XML配置文件 @(Spring)[spring, struts2, hibernate, 框架整合, ssh, Spring] SSH框架整合基于XML配置文件 SSH框架整合 ...

  4. 6.SSH框架整合及简单使用示例

    6.SSH框架整合 ssh:spring+spring-mvc+hibernate 6.1 整合的场所 :web.xml 跟 5.ssm框架 整合类似,可以对照学习,通过监听器配置hibernate, ...

  5. SSH框架整合开发(SSH框架整合过程)

    SSH框架整合过程 第一步 导入需要用到的jar包 第二步 搭建struts2环境 (1) 创建action ,创建struts.xml配置文件,配置action (2) 配置struts2 的过滤器 ...

  6. SSH框架整合过程(Struts2+Spring+Hibernate)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.NET/qq_25827845/article/details/53929601 冷血之心的博客) 在学习java框架的过程中,我总结 ...

  7. jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)

    课程分享 本博客开通以来,受到广大博友的一致喜爱, <wbr><wbr></wbr></wbr> 我也不负众望,再接再厉. <wbr>< ...

  8. SSH框架整合(代码加文字解释)

    一.创建数据库并设置编码. A) create database oa default character set utf8. 二.MyEclipse工程 A) 在Myeclipse里创建web工程, ...

  9. spring+springMvc+struts的SSH框架整合

    1.建立一个web项目 2.导入SSH框架所需jar包 3.配置web.xml文件 <?xml version="1.0" encoding="UTF-8" ...

最新文章

  1. HMM 前向 后向 Viterbi算法讲解通透的
  2. python 字符串前面加u,r,b,f的含义
  3. egg.js ajax上传文件,上传图片功能不会使用
  4. Java中怎样遍历Map的所有数据
  5. 从JDBC ResultSet创建对象流
  6. 湖北经济学院的计算机怎么样,湖北经济学院怎么样名气高吗?真实排名及实力如何?是一本吗...
  7. python发动机悬置解耦计算-按重心处整车坐标系解耦
  8. ubuntu16.04 安装图像界面,设置自动登录以及取消休眠模式
  9. iPhone 12 要来了,手机是时候换到 11 了
  10. bzoj 1019: [SHOI2008]汉诺塔
  11. 实用工具,可以生成dal层的相关cs代码
  12. 【思维导图怎么画】万彩脑图大师教程 | 添加备注
  13. 拼多多新店扶持期是多久?
  14. 自然语言处理核心期刊_中国中文信息学会
  15. 如何将WORD中的公式转为图片
  16. 保姆级教程,如何发现 GitHub 上的优质项目?
  17. 数据结构哈夫曼树实现26个英文字符的编码和译码
  18. Zookeeper集群一致性原理(强一致性)
  19. python的allure使用
  20. 计算机对未来和生活,从计算机的进化引发对未来生活的展望

热门文章

  1. 企业信息化的定义、内涵
  2. Spring 第二遍 02 spring IOC应用
  3. MongoDB 文件(MongoDB fs)
  4. Java中的static
  5. Grails 1.2参考文档速读(15):验证
  6. 矩阵对抗与系统补丁200911(第2期)下载
  7. 程序员兄弟们,我们的基本素质怎么样?
  8. java笔记 -- 输入输出
  9. BZOJ4196[Noi2015]软件包管理器——树链剖分+线段树
  10. 在Tomcat中部署Java Web应用程序几种方式