思维导图(基本配置)

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. fscanf和fprintf

    fscanf和fprintf fscanf的字符串是在键盘的缓冲区,fprintf是在显示器的缓冲区. 1.函数原型: int fprintf(FILE *fp, const char *format ...

  2. ROS学习笔记

    创建ros工作环境: mkdir -p ~/catkin_ws/src //建立项目目录,同时生成src文件夹 cd ~/catkin_ws/ //进入项目目录 catkin_make //编译项目, ...

  3. Opensshd 源码升级

    OPenssh 下载地址: http://www.openssh.com/ 以下步骤 OS: 6.x  安装Opensshd 7.4p1 验证通过 6.8  安装Opensshd 7.6p1 验证通过 ...

  4. tf.train.shuffle_batch函数解析

    tf.train.shuffle_batch (tensor_list, batch_size, capacity, min_after_dequeue, num_threads=1, seed=No ...

  5. salesforce零基础学习(八十六)Ajax Toolkit (VF页面中使用及javascript action使用)

    Ajax Toolkit 参考文档:https://resources.docs.salesforce.com/212/latest/en-us/sfdc/pdf/apex_ajax.pdf 在项目中 ...

  6. [Sdoi2017]硬币游戏 [高斯消元 KMP]

    [Sdoi2017]硬币游戏 题意:硬币序列,H T等概率出现,\(n \le 300\)个人猜了一个长为$ m \le 300$的字符串,出现即获胜游戏结束.求每个人获胜概率 考场用了[1444: ...

  7. HDU 3595 GG and MM [Every-SG]

    传送门 题意: 两个数$x,y$,一个人的决策为让大数减去小数的任意倍数(结果不能为负),出现0的人胜 一堆这样的游戏同时玩 Every-SG 游戏规定,对于还没有结束的单一游戏,游戏者必须对该游戏进 ...

  8. Hadoop源码分类概要整理

    最近突然觉得, 很多掌握的都还是很浅的原理,需要更深入细粒度去了解整个分布式系统的运转机制.于是..开始作死而又作死而又作死的源码之旅. Hadoop包的功能总共有下列几类: tool:提供一些命令行 ...

  9. 'abc' 转换成[a, b, c]一道面试题的思考

    最近面试遇到那样一个问题把'abc' 转换成[a, b, c],就是字符串转成数组. 看着简单,我就是说split,然后面试官问还有吗.我有思考了一下.循环用charAt()取,然后还有Array.f ...

  10. MarkDown 编辑数学公式

    1. 参考博客:http://blog.csdn.net/smstong/article/details/44340637 1 数学公式的web解决方案 在网页上显示漂亮的数学公式,是多年来数学工作者 ...