SSH框架整合-慕课课程
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框架整合-慕课课程相关推荐
- 【struts2+spring+hibernate】ssh框架整合开发
SSH框架整合 1 Struts2+Spring+Hibernate导包 Struts2导入jar包: * struts2/apps/struts2-blank.war/WEB-INF/lib/*.j ...
- SSH框架整合——基于注解
SSH框架整合--基于注解 @(Spring)[Spring, hibernate, struts2, 框架整合] SSH框架整合基于注解 SSH框架整合 第一步导入Jar包 第二步导入配置文件 第三 ...
- SSH框架整合——基于XML配置文件
SSH框架整合--基于XML配置文件 @(Spring)[spring, struts2, hibernate, 框架整合, ssh, Spring] SSH框架整合基于XML配置文件 SSH框架整合 ...
- 6.SSH框架整合及简单使用示例
6.SSH框架整合 ssh:spring+spring-mvc+hibernate 6.1 整合的场所 :web.xml 跟 5.ssm框架 整合类似,可以对照学习,通过监听器配置hibernate, ...
- SSH框架整合开发(SSH框架整合过程)
SSH框架整合过程 第一步 导入需要用到的jar包 第二步 搭建struts2环境 (1) 创建action ,创建struts.xml配置文件,配置action (2) 配置struts2 的过滤器 ...
- SSH框架整合过程(Struts2+Spring+Hibernate)
(尊重劳动成果,转载请注明出处:http://blog.csdn.NET/qq_25827845/article/details/53929601 冷血之心的博客) 在学习java框架的过程中,我总结 ...
- jQuery2.0应用开发:SSH框架整合jQuery2.0实战OA办公自动化(VSS、operamasks-UI框架)
课程分享 本博客开通以来,受到广大博友的一致喜爱, <wbr><wbr></wbr></wbr> 我也不负众望,再接再厉. <wbr>< ...
- SSH框架整合(代码加文字解释)
一.创建数据库并设置编码. A) create database oa default character set utf8. 二.MyEclipse工程 A) 在Myeclipse里创建web工程, ...
- spring+springMvc+struts的SSH框架整合
1.建立一个web项目 2.导入SSH框架所需jar包 3.配置web.xml文件 <?xml version="1.0" encoding="UTF-8" ...
最新文章
- HMM 前向 后向 Viterbi算法讲解通透的
- python 字符串前面加u,r,b,f的含义
- egg.js ajax上传文件,上传图片功能不会使用
- Java中怎样遍历Map的所有数据
- 从JDBC ResultSet创建对象流
- 湖北经济学院的计算机怎么样,湖北经济学院怎么样名气高吗?真实排名及实力如何?是一本吗...
- python发动机悬置解耦计算-按重心处整车坐标系解耦
- ubuntu16.04 安装图像界面,设置自动登录以及取消休眠模式
- iPhone 12 要来了,手机是时候换到 11 了
- bzoj 1019: [SHOI2008]汉诺塔
- 实用工具,可以生成dal层的相关cs代码
- 【思维导图怎么画】万彩脑图大师教程 | 添加备注
- 拼多多新店扶持期是多久?
- 自然语言处理核心期刊_中国中文信息学会
- 如何将WORD中的公式转为图片
- 保姆级教程,如何发现 GitHub 上的优质项目?
- 数据结构哈夫曼树实现26个英文字符的编码和译码
- Zookeeper集群一致性原理(强一致性)
- python的allure使用
- 计算机对未来和生活,从计算机的进化引发对未来生活的展望