思维导图(基本配置)

1. 需要引入的包

2 .spring-config.xml 的配置

  1. <!-- 链接数据库 外部配置文件扫入 -->
  2. <context:property-override location="classpath:db_orcl.properties" />
  3.  
  4. <!-- 扫描器 -->
  5. <!-- service , dao , 的实现类 和 action类 由spring 管理 -->
  6. <context:component-scan base-package="com.maya.service.impl,com.maya.action,com.maya.dao.impl" />
  7.  
  8. <!-- 配置数据源 (spring 提供的数据源 不支持连接池)-->
  9. <!-- Driver Manager Data Source -->
  10. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" />
  11.  
  12. <!-- 配置 Hibernate 核心类 SessionFactory -->
  13. <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  14. <!-- Hibernate 获取sessionFactory 要有一个数据库链接
  15. 所以把上面 连接到的数据源给sessionFactory -->
  16. <property name="dataSource" ref="dataSource"></property>
  17. <!-- 读取 Hibernate.dfg.xml 的配置 -->
  18. <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
  19. <!-- 读取 Hibernate 对实体类的映射文件 -->
  20. <property name="mappingLocations" value="classpath:com/maya/model/*.hbm.xml"></property>
  21. </bean>
  22.  
  23. <!-- HibernateTemplate -->
  24. <!-- 进行数据库操作的时候 ,
  25. Session , SessionFactory ,
  26. Transaction等 类的
  27. close, commit 等操作
  28. 全由spring去做 -->
  29.  
  30. <!--
  31. 每次调用获取一个新的实例
  32. sessionFactory.openSession();
  33. 有用原本的 没有新实例化一个
  34. sessionFactory.getCurrentSession();
  35. -->
  36. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
  37. <property name="sessionFactory" ref="sessionFactory"></property>
  38. </bean>
  39.  
  40. <!-- HIbernate 的事务管理器 -->
  41. <bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  42. <property name="sessionFactory" ref="sessionFactory"></property>
  43. </bean>
  44.  
  45. <!--开启声明式事物/就是开上面那个,两个名必须一致 -->
  46. <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
  47.  
  48. <!--面向切面,自己声明的 -->
  49. <bean id="logginAspect" class="com.maya.util.LogginAspect" />
  50.  
  51. <!-- 面向切面编程(AOP) 依赖注入DI(控制反转IOC)-->
  52.  
  53. <!-- aop 面向切面编程-->
  54. <aop:config proxy-target-class="true">
  55. <!-- 定义一个切点 *返回值 com.maya.service.任意类.任意名.任意后缀(参数)-->
  56. <aop:pointcut expression="execution(* com.maya.service.*.*(..))"
  57. id="appointcut" />
  58. <!-- 关联事物的传播属性 -->
  59. <aop:advisor pointcut-ref="appointcut" advice-ref="txadvice" />
  60. <!--定义切面类的执行方法 -->
  61. <aop:aspect ref="logginAspect">
  62. <aop:after method="afterMethod" pointcut-ref="appointcut" />
  63. <aop:before method="afterMethod" pointcut-ref="appointcut" />
  64. <aop:after-returning method="returnMethod"
  65. pointcut-ref="appointcut" />
  66. <aop:after-throwing method="throwMethod"
  67. pointcut-ref="appointcut" />
  68. </aop:aspect>
  69. </aop:config>
  70. <!--配置事物的传播属性 -->
  71. <tx:advice id="txadvice" transaction-manager="hibernateTransactionManager">
  72. <!--指定哪些方法使用事物 -->
  73. <tx:attributes>
  74. <tx:method name="insert*" propagation="REQUIRED" read-only="false" />
  75. <tx:method name="delete*" propagation="REQUIRED" read-only="false" />
  76. <tx:method name="update*" propagation="REQUIRED" read-only="false" />
  77. <tx:method name="select*" propagation="SUPPORTS" read-only="true" />
  78. </tx:attributes>
  79. </tx:advice>

3. hibernate.cfg.xml的配置

1. 选择Hibernate Configuration File (cfg.xml) 后 选择放在 src下 下一步

没有这个视图  自行打开

hibernate.cfg.xml 文件 的创建

4. Struts2.xml 的配置

  注意版本号!

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  4. "http://struts.apache.org/dtds/struts-2.3.dtd">
  5.  
  6. <struts>
  7.  
  8. <constant name="struts.devMode" value="true" />
  9. <constant name="struts.enable.DynamicMethodInvocation" value="false" />
  10.  
  11. <!-- 动态设置参数 -->
  12. <package name="page" namespace="/page" extends="struts-default">
  13. <action name="to*" class="com.maya.action.PageAction" method="{1}">
  14. <result>/WEB-INF/page/addStudent.jsp</result>
  15. </action>
  16. </package>
  17.  
  18. <!-- 前段传输路径 项目名/student/insertS -->
  19.  
  20. <package name="student" namespace="/student" extends="struts-default">
  21. <!-- 去com.xxx.Action底下找studentAction 里面的 insertS 方法 执行 -->
  22. <action name="insertS" class="studentAction" method="insertS">
  23. <!-- 根据返回值得 不同 转到不同页面 -->
  24. <result name="success">/WEB-INF/page/addStudent.jsp</result>
  25. <result name="error">/WEB-INF/page/addStudent.jsp</result>
  26. </action>
  27. </package>
  28.  
  29. </struts>

5. 过滤文件 hibernate.reveng.xml

  

  选择第三个

  

  

  

6 . 链接数据库

  3.的过程

1 .StudentAction

  

  1. // 需要被 继承使用
  2. public class BaseAction extends ActionSupport {
  3.  
  4. private static final long serialVersionUID = 1L;
  5.  
  6. public HttpServletRequest getrequest() {
  7. return ServletActionContext.getRequest();
  8. }
  9.  
  10. public HttpSession getSession() {
  11. return getrequest().getSession();
  12. }
  13. }
  1. // 继承BaseAction
  2. public class StudentAction extends BaseAction{
  3.  
  4. private static final long serialVersionUID = 1L;
  5.  
  6. private Student student;
  7.  
  8. @Autowired
  9. private StudentService ss;
  10.  
  11. public String insertS() {
  12. Serializable slb = ss.insertStudent(student);
  13. if (slb != null) {
  14. return SUCCESS;
  15. }
  16. return ERROR;
  17. }

2 .StudentService

  

  1. @Repository
  2. public class StudentServiceImpl implements StudentService{
  3.  
  4. @Autowired
  5. private BaseDao<Student> bd;
  6. // 使用 公用的方法 需要泛型(知识点 泛型注入)
  7.  
  8. @Override
  9. public Serializable insertStudent(Student s) {
  10. return bd.save(s);
  11. }
  12.  
  13. }

3 . BaseDaoImpl

  

  1. @Repository
  2. public class BaseDaoImpl<T> implements BaseDao<T> {
  3.  
  4. @Autowired
  5. private HibernateTemplate ht;
  6. // 需要 获取HibernateTemplate
  7.  
  8. @Override
  9. public Serializable save(T o) {
  10. //使用 里面的方法操作数据库
  11. return ht.save(o);
  12. }
  13.  
  14. @Override
  15. public void update(T o) {
  16. ht.update(o);
  17. }
  18.  
  19. @Override
  20. public void delet(T o) {
  21. ht.delete(o);
  22. };
  23. }

最后整理流程

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. docker入门(二)容器与镜像的理解

    10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...

  2. 6.Ray-消息订阅器编写

    消息订阅器: Ray是基于Event Sourcing设计的ES/Actor框架,消息发布后需要订阅处理,订阅器主要有以下两类: CoreHandler消息订阅器=RabbitSub+SubHandl ...

  3. 浅谈对SpringMVC的认识

    SpringMVC概念:     他是一个轻量级的开源框架,应用于表现层,基于MVC的设计模式. SpringMVC的特点:     1.他是单例的可以设置成多例.     2.他的线程是安全的    ...

  4. ABP官方文档翻译 2.7 对象到对象的映射

    对象到对象的映射 介绍 IObjectMapper接口 AutoMapper集成 安装 创建映射 自动映射属性 自定义映射 MapTo扩展方法 单元测试 预定义映射 LocalizeableStrin ...

  5. Linux下查看CPU、内存和硬盘信息命令

    一.查看cpu信息 cat /proc/cpuinfo 相同physical id 的记录是属于同一个CPU的,对应于多核的信息. 二.查看内存的信息 cat /proc/meminfo 三.查看硬盘 ...

  6. Spring整合JMS(三)——MessageConverter介绍

    原文链接:http://haohaoxuexi.iteye.com/blog/1900937 1.4     消息转换器MessageConverter MessageConverter的作用主要有两 ...

  7. Linux系统zookeeper环境搭建(单机、伪分布式、分布式)

    本人现在对zookeeper的环境搭建做一个总结,一般zookeeper的安装部署可以有三种模式,单机模式.伪分布式和分布式,这三种模式在什么时候应用具体看大家的使用场景,如果你只有一台机器且只是想自 ...

  8. HDU 3949 XOR [高斯消元XOR 线性基]

    3949冰上走 题意: 给你 N个数,从中取出若干个进行异或运算 , 求最后所有可以得到的异或结果中的第k小值 N个数高斯消元求出线性基后,设秩为$r$,那么总共可以组成$2^r$中数字(本题不能不选 ...

  9. c++中对于json的key不带双引号的问题修复

    在引用了第三方数据时,数据源通过转义,将json的key上双引号给去掉了. 在PHP开发时,可以通过正则表达式替换方式来补充丢失的双引号,处理代码如下 function ex_json_decode( ...

  10. es6 Object.assign

    ES6 Object.assign 一.基本用法 Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target).它至少需要两个对象作为参数,第一个参数是目 ...