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 ...
随机推荐
- docker入门(二)容器与镜像的理解
10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...
- 6.Ray-消息订阅器编写
消息订阅器: Ray是基于Event Sourcing设计的ES/Actor框架,消息发布后需要订阅处理,订阅器主要有以下两类: CoreHandler消息订阅器=RabbitSub+SubHandl ...
- 浅谈对SpringMVC的认识
SpringMVC概念: 他是一个轻量级的开源框架,应用于表现层,基于MVC的设计模式. SpringMVC的特点: 1.他是单例的可以设置成多例. 2.他的线程是安全的 ...
- ABP官方文档翻译 2.7 对象到对象的映射
对象到对象的映射 介绍 IObjectMapper接口 AutoMapper集成 安装 创建映射 自动映射属性 自定义映射 MapTo扩展方法 单元测试 预定义映射 LocalizeableStrin ...
- Linux下查看CPU、内存和硬盘信息命令
一.查看cpu信息 cat /proc/cpuinfo 相同physical id 的记录是属于同一个CPU的,对应于多核的信息. 二.查看内存的信息 cat /proc/meminfo 三.查看硬盘 ...
- Spring整合JMS(三)——MessageConverter介绍
原文链接:http://haohaoxuexi.iteye.com/blog/1900937 1.4 消息转换器MessageConverter MessageConverter的作用主要有两 ...
- Linux系统zookeeper环境搭建(单机、伪分布式、分布式)
本人现在对zookeeper的环境搭建做一个总结,一般zookeeper的安装部署可以有三种模式,单机模式.伪分布式和分布式,这三种模式在什么时候应用具体看大家的使用场景,如果你只有一台机器且只是想自 ...
- HDU 3949 XOR [高斯消元XOR 线性基]
3949冰上走 题意: 给你 N个数,从中取出若干个进行异或运算 , 求最后所有可以得到的异或结果中的第k小值 N个数高斯消元求出线性基后,设秩为$r$,那么总共可以组成$2^r$中数字(本题不能不选 ...
- c++中对于json的key不带双引号的问题修复
在引用了第三方数据时,数据源通过转义,将json的key上双引号给去掉了. 在PHP开发时,可以通过正则表达式替换方式来补充丢失的双引号,处理代码如下 function ex_json_decode( ...
- es6 Object.assign
ES6 Object.assign 一.基本用法 Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target).它至少需要两个对象作为参数,第一个参数是目 ...