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 ...
随机推荐
- 在nagios中监控windows主机系统地址的状态
原来的[root@nhserver2_5 objects]# cd /usr/local/nagios/etc/objects[root@nhserver2_5 objects]# vim comma ...
- javacript 组合使用构造函数模式和原型模式
构造函数模式创建对象 基本方法 function Person(name,age){ this.name=name; this.age=age; this.sayName=function(){ al ...
- Windows下Nginx实现负载均衡
Apache,Nginx Apache和Nginx都属于属于 静态页面服务器,都有插件支持动态编程语言处理,但Nginx的IO模比Apache更适合跑代理.所以一般都作为前端缓冲代理(Nginx的反向 ...
- Effective Java 之-----关于延迟初始化
1.大多数情况下,正常的初始化要优先于延迟初始化. private final FieldType field = computeFieldValue(); 2.如果利用延迟优化来破坏初始化的循环,就 ...
- 使用py2exe发布windows平台Python
一.简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序.py2ex ...
- 好用的开源库(二)——uCrop 图片裁剪
最近想要实现图片裁剪的功能,在Github上找到了这个uCrop,star的人挺多的,便是决定入坑,结果长达一个小时的看资料+摸索,终于是在项目中实现了图片裁剪的功能,今天便是来介绍一下uCrop的使 ...
- 洛谷 [P1280] 尼克的任务
DP 题目问的是最大空暇时间,那么就定义dp[i]为第i分钟的最大空暇时间,显然满足最优子结构,我们发现dp[i]仅与其后的值有关,那么从后往前推,如果第i分钟没有任务,dp[i]=dp[i+1],如 ...
- BZOJ 4698: Sdoi2008 Sandy的卡片 [后缀自动机]
4698: Sdoi2008 Sandy的卡片 题意:差分后就是多个串LCS SAM+map大法好 模板打错 智力-2 #include <iostream> #include <c ...
- R语言dplyr包初探
昨天学了一下R语言dplyr包,处理数据框还是很好用的.记录一下免得我忘记了... 先写一篇入门的,以后有空再写一篇详细的用法. #dplyr learning library(dplyr) #fil ...
- 《Web Scraping With Python》Chapter 2的学习笔记
You Don't Always Need a Hammer When Michelangelo was asked how he could sculpt a work of art as mast ...