第一章 认识SSM框架和Redis

第一章 认识SSM框架和Redis

一、Spring框架

Spring框架是Java应用最广的框架。它的成功来源于它的理念,它的理念包括IoC(Inversion of Control,控制反转)和 AoP(Aspect Oriented Programming,面向切面编程)

1.Spring IoC简介

IoC是一个容器,在Spring中,它会认为一切Java资源都是Java Bean,容器的目标就是管理这些Bean和它们之间的关系。
Spring IoC通过XML配置文件的描述信息将接口注入给使用者,使用者需要的西院通过描述信息即可得到,其中的控制权在Spring IoC容器中。
同时,Spring IoC还提供最Java Bean生命周期的管理,可以延迟加载,可以在其生命周期内定义一些行为等,更方便有效的使用和管理Java资源。

2. Spring AOP

Spring AOP常用于数据库事物的编程,我们在做完第一步数据库数据更新后,不知道下一步是否会成功,如果下一步失败,会使用数据库事务 的回滚功能去回滚事务,使得第一步的数据库更新也作废。

在默认情况下(可以通过Spring的配置修改)只要Spring接收到了异常信息,它就会将数据库的事务回滚,从而保证数据的一致性。不需要代码实现此过程。

二、MyBatis

MyBatis的优点在于灵活,它几乎可以代替JDBC,同时提供了接口编程。目前MyBatis 的数据访问层DAO(Data Access Objects)是不需要实现类的,它只需要一个接口和XML(或者注解)。

MyBatis提供自动映射、动态SQL、级联、缓存、注解、代码和SQL分离等特性,使用方便,同时也可对SQL使用优化。

优点:封装少、映射多样化、支持存储过程、可以进行SQL优化等优点。

  • MyBatis的映射文件1
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.CustomerMapper">
//注意:mapper元素中的 namespace属性要和一个接口的全限定名称保持一致
//resultMap用于定义映射规则
<resultMap id="roleMap" type="com.learn.chapter1.pojo.Role">
   <id property="id" column="id"/>
   <result property="roleName" column="role_name"/>
   <result property="note" column="note"/>
   </resultMap>
   //SQL的id也需要和接口定义的方法完全保持一致
   <select id="getRole" resultMap="roleMap">
       SELECT id,role_name,note FROM t_role WHERE id = #{id}
   </select>
   
   <delete id="deleteCustomer" parameterType="int">
       DELETE FROM t_role WHERE id=#{id}
   </delete>
   
   <insert id="insertRole" parameterType="com.learn.chapter1.pojo.Role">
       INSERT INTO t_roel(role_name,note) VALUES (#{roleName}, #{note})
   </insert>
   
   <update id="updateRole" parameterType="com.learn.chapter1.pojo.Role">
       UPDATE t_role SET role_name='${roleName}', note='${note}',
        WHERE id=${id}
   </update>
</mapper>
  • MyBatis的映射文件2
package com.learn.chapter1.mapper;
import com.learn.chapter1.Pojo.Role;

public interface RoleMapper {

    public Role getRole (Integer id);
    
    public int updateRole (Integer id);
    
    public int insertRole (Role role);
    
    public int deleteRole (Role role);
    
}
  • MyBatis对角色类的增删改查
SqlSession sqlSession = null;
try{
	sqlSession = MyBatisUtil.getSqlSession();
	RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
	Role role = roleMapper.getRole(1);//查询
	System.err.println(role.getRoleName());
	roleMapper.updateRole(role);//更新
	Role role2 = new Role();
	role2.setNote("note2");
	role2.setRoleName("role2");
	roleMapper.insertRole(role);//插入
	roleMapper.deleteRole(5);//删除
	sqlSession.commmot();//提交事务
}catch (Exception ex){
	ex.printStackTrace();
	if(sqlSession != null){
		sqlSession.rollback();//回滚事务
	}
}finally{//关闭连接
	if(sqlSession!=null){
		sqlSession.close();
	}
}

三、SSM+Redis 结构框图及概述

在这里插入图片描述

  • Spring IoC承担了一个资源管理、整合、即插即拔的功能
  • Spring AOP可以提供切面管理,特别熟数据库事务管理的功能。
  • Spring MVC用于把模型、视图、控制器分层,组合成一个有机灵活的系统。
  • MyBatis提供了一个数据库访问的持久层,通过MyBatis-Spring项目,它便能和Spring无缝对接。
  • Redis作为缓存工具,它提供了高速度处理数据和缓存数据的功能,使得系统大部分只需要缓存访问,而无需从数据库磁盘中重复读\写;在一些需要高速运算的场合,也可以先用它完成计算,再把数据批量存入数据库,这样便能极大的提升互联网系统的稳定性的性能和响应能力。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值