ssh (Spring , Struts2 , Hibernate)框架的配置使用
思维导图(基本配置)

1. 需要引入的包


2 .spring-config.xml 的配置
<!-- 链接数据库 外部配置文件扫入 -->
<context:property-override location="classpath:db_orcl.properties" /> <!-- 扫描器 -->
<!-- service , dao , 的实现类 和 action类 由spring 管理 -->
<context:component-scan base-package="com.maya.service.impl,com.maya.action,com.maya.dao.impl" /> <!-- 配置数据源 (spring 提供的数据源 不支持连接池)-->
<!-- Driver Manager Data Source -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" /> <!-- 配置 Hibernate 核心类 SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!-- Hibernate 获取sessionFactory 要有一个数据库链接
所以把上面 连接到的数据源给sessionFactory -->
<property name="dataSource" ref="dataSource"></property>
<!-- 读取 Hibernate.dfg.xml 的配置 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!-- 读取 Hibernate 对实体类的映射文件 -->
<property name="mappingLocations" value="classpath:com/maya/model/*.hbm.xml"></property>
</bean> <!-- HibernateTemplate -->
<!-- 进行数据库操作的时候 ,
Session , SessionFactory ,
Transaction等 类的
close, commit 等操作
全由spring去做 --> <!--
每次调用获取一个新的实例
sessionFactory.openSession();
有用原本的 没有新实例化一个
sessionFactory.getCurrentSession();
-->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- HIbernate 的事务管理器 -->
<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!--开启声明式事物/就是开上面那个,两个名必须一致 -->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven> <!--面向切面,自己声明的 -->
<bean id="logginAspect" class="com.maya.util.LogginAspect" /> <!-- 面向切面编程(AOP) 依赖注入DI(控制反转IOC)--> <!-- aop 面向切面编程-->
<aop:config proxy-target-class="true">
<!-- 定义一个切点 *返回值 com.maya.service.任意类.任意名.任意后缀(参数)-->
<aop:pointcut expression="execution(* com.maya.service.*.*(..))"
id="appointcut" />
<!-- 关联事物的传播属性 -->
<aop:advisor pointcut-ref="appointcut" advice-ref="txadvice" />
<!--定义切面类的执行方法 -->
<aop:aspect ref="logginAspect">
<aop:after method="afterMethod" pointcut-ref="appointcut" />
<aop:before method="afterMethod" pointcut-ref="appointcut" />
<aop:after-returning method="returnMethod"
pointcut-ref="appointcut" />
<aop:after-throwing method="throwMethod"
pointcut-ref="appointcut" />
</aop:aspect>
</aop:config>
<!--配置事物的传播属性 -->
<tx:advice id="txadvice" transaction-manager="hibernateTransactionManager">
<!--指定哪些方法使用事物 -->
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED" read-only="false" />
<tx:method name="delete*" propagation="REQUIRED" read-only="false" />
<tx:method name="update*" propagation="REQUIRED" read-only="false" />
<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice>
3. hibernate.cfg.xml的配置
1. 选择Hibernate Configuration File (cfg.xml) 后 选择放在 src下 下一步

没有这个视图 自行打开

hibernate.cfg.xml 文件 的创建



4. Struts2.xml 的配置
注意版本号!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" /> <!-- 动态设置参数 -->
<package name="page" namespace="/page" extends="struts-default">
<action name="to*" class="com.maya.action.PageAction" method="{1}">
<result>/WEB-INF/page/addStudent.jsp</result>
</action>
</package> <!-- 前段传输路径 项目名/student/insertS --> <package name="student" namespace="/student" extends="struts-default">
<!-- 去com.xxx.Action底下找studentAction 里面的 insertS 方法 执行 -->
<action name="insertS" class="studentAction" method="insertS">
<!-- 根据返回值得 不同 转到不同页面 -->
<result name="success">/WEB-INF/page/addStudent.jsp</result>
<result name="error">/WEB-INF/page/addStudent.jsp</result>
</action>
</package> </struts>
5. 过滤文件 hibernate.reveng.xml

选择第三个



6 . 链接数据库
3.的过程
1 .StudentAction
// 需要被 继承使用
public class BaseAction extends ActionSupport { private static final long serialVersionUID = 1L; public HttpServletRequest getrequest() {
return ServletActionContext.getRequest();
} public HttpSession getSession() {
return getrequest().getSession();
}
}
// 继承BaseAction
public class StudentAction extends BaseAction{ private static final long serialVersionUID = 1L; private Student student; @Autowired
private StudentService ss; public String insertS() {
Serializable slb = ss.insertStudent(student);
if (slb != null) {
return SUCCESS;
}
return ERROR;
}
2 .StudentService
@Repository
public class StudentServiceImpl implements StudentService{ @Autowired
private BaseDao<Student> bd;
// 使用 公用的方法 需要泛型(知识点 泛型注入) @Override
public Serializable insertStudent(Student s) {
return bd.save(s);
} }
3 . BaseDaoImpl
@Repository
public class BaseDaoImpl<T> implements BaseDao<T> { @Autowired
private HibernateTemplate ht;
// 需要 获取HibernateTemplate @Override
public Serializable save(T o) {
//使用 里面的方法操作数据库
return ht.save(o);
} @Override
public void update(T o) {
ht.update(o);
} @Override
public void delet(T o) {
ht.delete(o);
};
}
最后整理流程

ssh (Spring , Struts2 , Hibernate)框架的配置使用的更多相关文章
- SSH(Spring SpringMVC Hibernate)框架整合
项目说明: 使用SSH(Spring SpringMVC Hibernate)框架整合添加部门功能 项目结构 1.导入依赖jar包 <!--单测--> <dependency&g ...
- 简单Spring+Struts2+Hibernate框架搭建
使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...
- Spring+Struts2+Hibernate框架整合流程
一:基本步骤 新建Maven项目,导入相关依赖(推荐) 在WEB-INF的web.xml中进行配置 ————–Hibernate配置 —————- 创建entity包,创建数据库相关实体类 根据实体类 ...
- spring+struts2+hibernate框架搭建(Maven工程)
搭建Spring 1.porm.xml中添加jar包 <!-- spring3 --> <dependency> <groupId>org.springframew ...
- JAVAWEB 一一 框架整合(SSH,Spring+Struts2+Hibernate IOC/DI AOP声明式事务处理 定时任务)
package org.springframework.orm.hibernate3; import java.io.Serializable; import java.util.List; impo ...
- SSH(Spring+Struts2+Hibernate) of mappings(SSH三大框架的映射问题)
错误提示: org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity org.hibernate.Mapp ...
- Spring+Struts2+Hibernate框架搭建
SSH框架版本:Struts-2.3.30 + Spring-4.2.2 + Hibernate5.2.2 下图是所需要的Jar包: 下面是项目的结构图: 1.web.xml <?xml ...
- 【Spring】Spring+struts2+Hibernate框架的搭建
1.搭建过程 首先需要引入Spring.Struts2.Hibernate的开发包,已经数据库的驱动包. UserAction.java文件 package cn.shop.action; impor ...
- spring+struts2+hibernate框架依赖pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- 【转】城市CORS系统建设
随着GPS技术的飞速进步和应用普及,它在城市测量中的作用已越来越重要.当前,利用多基站网络RTK技术建立的连续运行卫星定位服务综合系统(Continuous Operational Reference ...
- Cacti在selinux开启的情况下使用
# chcon -R -t httpd_sys_content_t /var/www/html/cacti
- HTML——filedset和legend标签
1.<filedset>定义围绕表单中元素的边框. 2.legend 元素表示作为 legend 元素的父元素的 fieldset 元素的其余内容的标题(caption). 使用案例: & ...
- IT 人士如何避免中年危机?
今天咱们不谈技术,来聊点别的. 这也可能是比学习具体技术更重要的话题 - 投资. 我把投资分成两类: 投资股票.期货.现货.黄金这类常见投资品种. 投资自己.比如看书.学习.参加培训.当然<每天 ...
- 使用Filebeat和Logstash集中归档日志
方 案 Filebeat->Logstash->Files Filebeat->Redis->Logstash->Files Nxlog(Rsyslog.Logstash ...
- c#基础(一)
一. C#与.Net的关系 C#是一种相当新的编程语言.C#的重要性体现在以下两个方法: 1).它是专门为Microsoft的.net FrameWork一起使用而设计的 (.net FrameWor ...
- JAVA并发编程学习笔记------FutureTask
FutureTask是Future和Callable的结合体.传统的代码是这样写的Future f = executor.submit(new Callable()); 然后通过Future来取得计算 ...
- java 世界中Annotation
java 世界中Annotation 在github上开始汇总一些自己学习,收集,总结,经验的一些信息,有利于跟踪,修改,提升.如果你感兴趣 可以关注一下,也可以提供自己的内容进来. https:// ...
- Python基础篇(三)
元组是序列的一种,与列表的区别是,元组是不能修改的. 元组一般是用圆括号括起来进行定义,如下: >>> (1,2,3)[1:2] (2,) 如果元组中只有一个元素,元组的表示 ...
- [Sdoi2017]硬币游戏 [高斯消元 KMP]
[Sdoi2017]硬币游戏 题意:硬币序列,H T等概率出现,\(n \le 300\)个人猜了一个长为$ m \le 300$的字符串,出现即获胜游戏结束.求每个人获胜概率 考场用了[1444: ...