Spring知识梳理(4)--数据库操作、事务管理

《JdbcTemplate实现curd数据库操作》
模板(template)
创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)操作。

1.spring框架  一站式框架
    针对Javaee三层结构,每一层都有相应的解决技术

2.spring对不同的持久化技术    都进行了封装
    在dao层使用的JdbcTemplate  是对jdbc的封装

3.JdbcTemplate使用和dbutils的使用很相似,都是对数据库进行curd操作

《添加》《修改》《删除》JDemo1
    1.搭建相关开发环境
    2.创建对象,设置数据库信息
        --别忘了数据库驱动--
    3.创建JdbcTemplate对象,设置数据源
    4.调用JdbcTemplate对象里边的方法,实现操作
        update(String sql,Object...args):int -JdbcTemplate
        第一个参数是sql语句,第二个参数是可变参数

《查询》
    使用JdbcTemplate实现查询, 需要继承接口 RowMapper,
    但JdbcTemplate针对这个借口没有提供实现类,得到不同类型的数据时,需要自己手动进行数据的封装

    1.查询表中有多少条数据   返回某一个值(int类型)
        queryForObject(String sql,Class<T> requiredType:T-jdbc)
        第一个参数是sql语句,第二个参数是 返回类型 包装类的class

    2.查询一整条数据(表中的一行,就是一整条数据,)   返回一个对象
        queryForObject(String sql,RowMapper<T> rowMapper.Object...args):T
        第一个参数是sql语句,第二个参数RowMapper接口   第三个参数是可变参数
        特别需要注意的是:queryForObject只能返回一个对象  

    3.查询多条数据,返回的是对象的list集合
        query(String sql,RowMapper<T> rowMapper.Object...args):List<T>
        第一个参数是sql语句,第二个参数RowMapper接口   第三个参数是可变参数(可以省略了)

《spring配置c3p0连接池 实现dao层调用jdbcTemplate》
导入jar包–
创建bean1.xml,进行配置

    《dao使用JdbcTemplate》
        1.1--在xml中配置service和dao对象,
               在service类中配置dao对象属性,set方法
               在xml中将dao对象注入到service中

        1.2--在xml中配置JdbcTemplate对象,
               在dao类中配置JdbcTemplate对象属性,set方法
               在xml中将JdbcTemplate对象注入到dao中

        1.3--在xml中创建c3p0连接池对象
               注入四个属性值
               将c3p0连接池对象注入到JdbcTemplate对象中

**Spring的事务管理 **
1.事物概念

    事物是对数据库操作的最基本单元,是一组操作
    事务是一种思想,它就是保证一件事情要么完全做要么完全不做
    即  要么都成功; 有一个失败,都失败

2.事物特性
    原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做要么全不做
    一致性:数据不会因为事务的执行而遭到破坏
    隔离性:一个事物的执行,不受其他事务的干扰,即并发执行的事物之间互不干扰
    持久性:一个事物一旦提交,它对数据库的改变就是永久的

3.不考虑隔离性,它会产生读问题
    设置隔离级别可以解决

4.spring事务管理的两种方式
    第一种:编程式事务管理
                 通过写代码实现,一般不推荐使用
    第二种:声明式事务管理
           (1)基于xml配置文件实现
           (2)基于注解方式实现*
             无论使用哪种实现方式,都要首先配置事务管理器

5.spring事务管理的api介绍
    接口:PlatformTransactionManager--事务管理器
    实现类:spring针对不同的dao层框架,提供了接口中不同的实现类

《搭建转账环境,进行事务管理》

1.数据库搭建
    库:用户--user 
    表:账户--account
    字段:id、username、salary(工资)
2.创建service和dao类,完成注入关系
    (1)service层又叫做业务逻辑层
    (2)dao层,单纯的数据库操作层
3.bean1.xml文件--
             配置各个对象
             引入事物的相关约束
             注入各个对象属性
4.需求:账户a1 转账 1000给 a2
       a1账户少1000
       a2账户多1000
             这两个操作构成我们的业务逻辑
5.产生的问题
    可能在a1少1000后, a2还没有多1000时, 
    这个过程中出现了一个未能预知的异常、错误
    导致数据库中,a1的账户少了1000,但a2还没有加1000
    解决方案:
        添加事物进行解决--出现异常 进行【回滚--回到初始状态】操作
        在service层手动伪造一个java.lang.ArithmeticException 数学运算异常
        int i=10/0;
        然后进行事物操作

《声明式事务管理–xml》

1.配置文件方式,基于tx/aop     
    <使用Aspectj的xml配置声明式事物>
    第一步:配置事物管理器*
    第二步:配置事物增强
    第三步:配置切入点、切面

《声明式事务管理–注解》

    第一步:配置事物管理器*
    第二步:配置事物注解
    第三步:使用事物的方法 它所在的类上边  
            添加上注解     @Transactional    【04.png】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当谈到SpringSpring Boot和Spring Cloud面试时,以下是一些可能的问题和重点: Spring: 1. Spring框架的主要功能是什么?如何使用Spring框架? 2. Spring框架中的Bean是什么?如何定义Bean? 3. Spring框架中的依赖注入是什么?有哪些类型的依赖注入? 4. Spring框架中的AOP是什么?它是如何工作的? 5. Spring框架中的事务是什么?它是如何实现的? Spring Boot: 1. Spring Boot是什么?它是如何简化Spring开发的? 2. Spring Boot如何管理依赖?如何自动配置? 3. Spring Boot如何处理异常和错误? 4. Spring Boot中的Starter是什么?如何使用它? 5. Spring Boot中如何配置日志? Spring Cloud: 1. Spring Cloud是什么?它解决了什么问题? 2. Spring Cloud中的服务注册与发现是什么?如何实现它? 3. Spring Cloud中的负载均衡是什么?如何实现它? 4. Spring Cloud中的熔断是什么?如何实现它? 5. Spring Cloud中的配置中心是什么?如何使用它? 当然,在面试中可能还有其他问题和知识点需要掌握。但是以上这些内容是比较基础和常见的,希望能对你有所帮助。 ### 回答2: SpringSpring Boot、Spring Cloud 是 Java 开发中常用的三个框架,下面分别整理它们的面试知识点: 1. Spring: - Spring 是一个轻量级的开源框架,主要用于开发Java应用。面试时需要了解 Spring 的核心概念和特性,如控制反转(IOC)、面向切面编程(AOP)、依赖注入(DI)等。 - 需要掌握 Spring 的各个模块,如 Spring MVC、Spring JDBC、Spring Security 等,并了解它们的使用方法和原理。 - 熟悉 Spring 的配置方式,包括 XML 配置和注解配置,并能够实现常见的配置功能,如配置数据源、事务管理等。 - 需要了解 Spring 和其他框架的集成方式,如与 Hibernate、MyBatis、JPA 等的集成,以及与其他中间件的集成。 2. Spring Boot: - Spring Boot 是在 Spring 基础上的一种简化配置的框架,旨在简化新项目的搭建和配置。面试时需要掌握 Spring Boot 的核心特性和优势,如自动配置、快速开发、内置容器等。 - 了解 Spring Boot 的启动流程和原理,包括自动配置原理、依赖管理等。 - 熟悉 Spring Boot 的常用功能,如配置文件的读取、日志配置、Web 开发、数据访问等。 - 需要了解 Spring Boot 的项目结构和约定,以及如何自定义配置和拓展。 3. Spring Cloud: - Spring Cloud 是基于 Spring Boot 构建的一套微服务框架。面试时需要掌握微服务架构的概念和相关技术,如服务注册与发现、负载均衡、熔断器、配置中心等。 - 熟悉 Spring Cloud 的核心组件和功能,如服务注册与发现(Eureka、Zookeeper、Consul)、负载均衡(Ribbon、Feign)、熔断器(Hystrix)、网关(Zuul、Gateway)等。 - 需要了解 Spring Cloud 的分布式配置和服务治理,如使用 Config Server 进行配置管理、使用 Spring Cloud Bus 进行消息广播等。 - 需要了解 Spring Cloud 和云原生应用开发的关系,如使用 Spring Cloud 来构建云原生应用,部署到云平台等。 在面试中,除了掌握上述知识点,还需要了解最新的 SpringSpring Boot、Spring Cloud 的版本和更新内容,能够结合实际项目经验回答面试官的问题,展示自己对这些框架的深入理解和实践经验。 ### 回答3: Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了一种轻量级的开发方式,通过控制反转和依赖注入等特性,简化了应用程序的开发过程。Spring提供了许多不同的模块,如Spring MVC、Spring Data、Spring Security等,以满足不同应用需求。 下面是一些常见的Spring面试知识点: 1. Spring框架的特点和优势:控制反转(IoC)和依赖注入(DI),面向切面编程(AOP),松散耦合,模块化开发等。 2. Spring的核心模块:Spring核心容器,包括BeanFactory和ApplicationContext,用于管理和装配应用程序组件。 3. Spring MVC:Web应用程序开发的模块,用于构建基于模型-视图-控制器(MVC)的应用程序。 4. Spring Boot:用于开发独立的、可运行的Spring应用程序的框架。它简化了Spring应用程序的配置和部署过程,提供了自动配置和约定优于配置的原则。 5. Spring Cloud:用于构建分布式系统和微服务架构的框架。它提供了服务发现、配置管理、负载均衡等功能,简化了微服务的开发和管理。 6. Spring事务管理Spring框架提供了对事务进行声明性管理的支持,可以通过注解或编程方式来管理事务。 7. Spring Security:用于应用程序安全管理的模块。它提供了认证、授权、加密等功能,保护应用程序的安全性。 8. Spring Data:用于简化数据库访问的模块。它支持各种数据访问技术,如JPA、Hibernate、MongoDB等。 9. Spring的测试支持:Spring提供了各种测试支持,如单元测试、集成测试、Web测试等。 以上是一些常见的Spring面试知识点,希望对你的面试准备有所帮助。注意理解Spring各个模块的作用和特点,以及在实际项目中的应用场景和使用方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值