思维导图(基本配置)

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)框架的配置使用的更多相关文章

  1. SSH(Spring SpringMVC Hibernate)框架整合

    项目说明: 使用SSH(Spring SpringMVC Hibernate)框架整合添加部门功能 项目结构   1.导入依赖jar包 <!--单测--> <dependency&g ...

  2. 简单Spring+Struts2+Hibernate框架搭建

    使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0&q ...

  3. Spring+Struts2+Hibernate框架整合流程

    一:基本步骤 新建Maven项目,导入相关依赖(推荐) 在WEB-INF的web.xml中进行配置 ————–Hibernate配置 —————- 创建entity包,创建数据库相关实体类 根据实体类 ...

  4. spring+struts2+hibernate框架搭建(Maven工程)

    搭建Spring 1.porm.xml中添加jar包 <!-- spring3 --> <dependency> <groupId>org.springframew ...

  5. JAVAWEB 一一 框架整合(SSH,Spring+Struts2+Hibernate IOC/DI AOP声明式事务处理 定时任务)

    package org.springframework.orm.hibernate3; import java.io.Serializable; import java.util.List; impo ...

  6. SSH(Spring+Struts2+Hibernate) of mappings(SSH三大框架的映射问题)

    错误提示: org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity org.hibernate.Mapp ...

  7. Spring+Struts2+Hibernate框架搭建

    SSH框架版本:Struts-2.3.30  +  Spring-4.2.2  +  Hibernate5.2.2 下图是所需要的Jar包: 下面是项目的结构图: 1.web.xml <?xml ...

  8. 【Spring】Spring+struts2+Hibernate框架的搭建

    1.搭建过程 首先需要引入Spring.Struts2.Hibernate的开发包,已经数据库的驱动包. UserAction.java文件 package cn.shop.action; impor ...

  9. spring+struts2+hibernate框架依赖pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

随机推荐

  1. 【转】Linux上vi(vim)编辑器使用教程

    Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...

  2. 什么是Servlet,Servlet的作用,生命周期,如何创建、配置Servlet

    什么是Servlet,作用是? servlet是一个基于java技术的WEB组件,运行在服务器端,我们利用 sevlet可以很轻松的扩展WEB服务器的功能,使它满足特定的应用需要.servlet由se ...

  3. absort函数和exit函数

    1. exit()函数会结束并退出程序. 1. abosrt()函数会触发程序的异常,然后程序后面的语句就不会执行了.用来提示错误.会出现:  

  4. 浅析调用JSR303的validate方法, 验证失败时抛出ConstraintViolationException

    废话不多说,直接进入正题:如何使用JSR303的validate,进行数据校验,失败后直接抛出异常加入流转信息中,并在form页面提示出来. 首先我们为了启用验证,需要向 项目中添加Bean验证的实现 ...

  5. Azure Functions + Azure Batch实现MP3音频转码方案

    客户需求 客户的环境是一个网络音乐播放系统,根据网络情况提供给手机用户收听各种码率的MP3歌曲,在客户没购买歌曲的情况下提供一个三十秒内的试听版本.这样一个系统非常明确地一个需求就是会定期需要将一批从 ...

  6. Sizeof的三种作用

    一.计算常量占用的字节数 例如:int num=sizeof(10); printf("%i",num); 二.计算变量占用的字节数 例如:int num2=3; int resu ...

  7. HBase MetaStore和Compaction剖析

    1.概述 客户端读写数据是先从HBase Master获取RegionServer的元数据信息,比如Region地址信息.在执行数据写操作时,HBase会先写MetaStore,为什么会写到MetaS ...

  8. CentOS 7.1静默安装11.2.0.3 64位单机数据库软件

    第1章 CentOS 7.1静默安装11.2.0.3 64位单机数据库软件 1.1  安装前的准备工作 1.1.1      软件准备 1.1.2      检查硬件 注意这里的内存应该满足要求,不然 ...

  9. Python基础篇(六)

    retun空值,后面的语句将不再被执行 >>> def test(): ...    print("just a test!") ...    return .. ...

  10. json和xml的两者区别

    服务器端返回给客户端的数据一般都是JSON格式,JSON数据以键值的形式保存,数据之间以逗号分隔,{}表示对象,[]表示数组.JSON数据解析方案有四种,JSONKit,SBJson,TouchJso ...