spring之ssh整合

SSH整合以及测试增删改查

导入pom.xml依赖:(不能一次性全部导入,按顺序来)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zking</groupId>
  <artifactId>SSH</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SSH Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
		<hibernate.version>5.2.12.Final</hibernate.version>
		<mysql.version>5.1.44</mysql.version>
		<spring.version>5.0.1.RELEASE</spring.version>
		<struts2.version>2.5.13</struts2.version>
		<slf4j.version>1.7.7</slf4j.version>
		<log4j2.version>2.9.1</log4j2.version>
		<disruptor.version>3.2.0</disruptor.version>
		<junit.version>4.12</junit.version>
		<javax.servlet.version>4.0.0</javax.servlet.version>
		<jstl.version>1.2</jstl.version>
		<standard.version>1.1.2</standard.version>
		<tomcat-jsp-api.version>8.0.47</tomcat-jsp-api.version>
	</properties>
  <dependencies>
		<!-- 1、导入hibernate依赖 -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-c3p0</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-ehcache</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>
		<!-- 2、导入spring依赖 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<!-- 3、导入struts2依赖 -->
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>${struts2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>${struts2.version}</version>
		</dependency>
		<!-- 4、导入日志系统依赖 -->
		<!-- log配置:Log4j2 + Slf4j -->
		<!-- slf4j核心包 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${slf4j.version}</version>
			<scope>runtime</scope>
		</dependency>

		<!--用于与slf4j保持桥接 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>${log4j2.version}</version>
		</dependency>

		<!--核心log4j2jar包 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${log4j2.version}</version>
		</dependency>

		<!--web工程需要包含log4j-web,非web工程不需要 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-web</artifactId>
			<version>${log4j2.version}</version>
			<scope>runtime</scope>
		</dependency>
		<!--需要使用log4j2的AsyncLogger需要包含disruptor -->
		<dependency>
			<groupId>com.lmax</groupId>
			<artifactId>disruptor</artifactId>
			<version>${disruptor.version}</version>
		</dependency>
		<!-- 5、other -->
		<!-- 5.1、junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>

		<!-- 5.2、servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>${javax.servlet.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- 5.3、jstl、standard -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>${jstl.version}</version>
		</dependency>
		<dependency>
			<groupId>taglibs</groupId>
			<artifactId>standard</artifactId>
			<version>${standard.version}</version>
		</dependency>

		<!-- 5.4、tomcat-jsp-api -->
		<dependency>
			<groupId>org.apache.tomcat</groupId>
			<artifactId>tomcat-jsp-api</artifactId>
			<version>${tomcat-jsp-api.version}</version>
		</dependency>
		
  </dependencies>
  <build>
    <finalName>SSH</finalName>
    <plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
  </build>
</project>

并测试结果:(如果不是则重新做)
在这里插入图片描述

spring与struts与hibernate整合以及测试增删改查
提供项目连接:
链接:https://pan.baidu.com/s/1YgqNq04D9u-xKwomOc8JKQ
提取码:g4qf
测试是否整合成功

先写实体包
book.hbm.xml文件在以前是配置到hibernate.cfg.xml文件中
现在是配置spring-hibernate.xml文件中
写dao
写biz接口
写实现类
对文件进行管理
测试:

http://localhost:8080/SSH2/sy/book_list.action

结果:

在这里插入图片描述
运行:

http://localhost:8080/SSH2/sy/book_add.action?bname=mvc&&price=88

结果:
在这里插入图片描述
运行

http://localhost:8080/SSH2/sy/book_edit.action?bname=mvc&&price=666&&bid=131418

结果:
在这里插入图片描述
运行:

http://localhost:8080/SSH2/sy/book_del.action?bid=131418

结果:
在这里插入图片描述

存在问题:

在这里插入图片描述
查看下这个文件内容是否错误
在这里插入图片描述
在这里插入图片描述
问题二:

在这里插入图片描述
看下数据库是否是自增长
在这里插入图片描述

为什么切面要切在biz接口上不能切在dao层上面勒?

重点在于是否一致性

如果切在biz上面保持了事物的一致 唯一性,切在dao层上面就不能保持事物的唯一性

/**
 * 为什么切面要切到Biz接口上?不能切到Dao层上面呢?
 *   以银行转账为例,假如说张三李四账户各有1000,张三给李四转账300,正常的结果是张三:700 李四:1300
 *   web层处理转账的请求:
 *    transfer(){
 *      biz.transfer(from,to.money)
 *    }
 *    
 *    biz层
 *      transfer(from,to.money){
 *      1.获取from账号的现在账户信息(现在有多少钱)
 *      2.获取to账号的现在账户信息(现在有多少钱)
 *      3.第一步获取的金额-money
 *      4.第二步获取的金额+money
 *      5.dao.edit(from)
 *      6.dao.edit(to)
 *    }
 *    
 *    dao层:
 *     get(user){
 *     ...
 *     }
 *     
 *     edit(user){
 *     ...
 *     }
 *     
 *  如果切面切在Dao层上:
 *   transfer(from,to.money){
 *      1.获取from账号的现在账户信息(现在有多少钱)
 *      2.获取to账号的现在账户信息(现在有多少钱)
 *      3.第一步获取的金额-money
 *      4.第二步获取的金额+money
 *      
 *      Transation transation1 = session.beginTransation();
 *      5.dao.edit(from)
 *      transation1.commit();
 *      
 *      system.out.print(1/0);
 *      
 *      Transation transation2 = session.beginTransation();
 *      6.dao.edit(to)
 *       transation2.commit();
 *    }
 *  
 *  如果切面切在Biz层上:
 *  
 *   transfer(from,to.money){
 *      1.获取from账号的现在账户信息(现在有多少钱)
 *      2.获取to账号的现在账户信息(现在有多少钱)
 *      3.第一步获取的金额-money
 *      4.第二步获取的金额+money
 *      5.dao.edit(from)
 *      6.dao.edit(to)
 *    }
 *    
 * web层处理转账的请求:
 *    tranfer(){
 *      Transation transation1 = session.beginTransation();
 *      biz.transfer(from,to,money)
 *      transation1.commit();
 *    }
 * execution(* *..*Biz.*(..))
 * @author myy
 *
 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值