思维导图(基本配置)

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. Django 部署到Nginx

    在网上搜了很多篇Django+uwsgi+Nginx的部署文章,忙了一下午头昏脑胀,最终完成了部署.部署文章流程讲解都很好,但在细节上或许缺乏一些注意力,导致我多篇文章来回切换在字里行间寻找蛛丝马迹. ...

  2. <>和“”的区别

    <stdio.h>是直接从系统里边找. ""是先在本地找,然后在系统里边找. <>不可以替换"",       "" ...

  3. [squid] kid1| ERROR: No forward-proxy ports configured.

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. 安装pcntl以实现php多进程

    pcntl 扩展包一般就在php源码的ext目录下. cd ./ext/pcntl /opt/server/php5/bin/phpize ./configure \ --with-php-confi ...

  5. Go笔记-方法

    [方法的概念]     在 Go 语言中,结构体就像是类的一种简化形式,那么面向对象程序员可能会问:类的方法在哪里呢?在 Go 中有一个概念,它和方法有着同样的名字,并且大体上意思相同:Go 方法是作 ...

  6. MySQL笔记-union

    union语法 select ... union [all | distinct] selct ... union用于把来自多个select语句的结果组合在一个结果集中. 两次查询的列表必须相同,否则 ...

  7. verilog实验1:基于FPGA蜂鸣器演奏乐曲并数码管显示

    一.实验任务 利用FPGA进行代码开发,使蜂鸣器演奏出乐曲<生日快乐>,将音调显示在数码管.原理为蜂鸣器为交流源蜂鸣器,在引脚上加一定频率的方波就可以发声,而且发声的频率由所加方波决定.这 ...

  8. 利用回调实现Java的异步调用

    异步是指调用发出后,调用者不会立刻得到结果,而是在调用发出后,被调用者通知调用者,或通过回调函数处理这个调用. 回调简单地说就是B中有一个A,这样A在调用B的某个方法时实际上是调用到了自己的方法. 利 ...

  9. 夏令营讲课内容整理 Day 6 Part 1.

    Day6讲了三个大部分的内容. 1.STL 2.初等数论 3.倍增   Part1主要与STL有关. 1.概述 STL的英文全名叫Standard Template Library,翻译成中文就叫标准 ...

  10. SDN第一次上机作业

    作业链接 用字符命令生成拓扑,并测试连通性,截图 sudo mn --topo tree,fanout=3,depth=2 用可视化界面生成拓扑,并测试连通性,截图 用Python脚本生成一个Fat- ...