JdbcTemplate
JdbcTemplate实现数据库增删改查
1.引入.jar包;
spring-jdbc-5.2.6.RELEASE.jar
spring-orm-5.2.6.RELEASE.jar
spring-tx-5.2.6.RELEASE.jar
mysql-connector-java-5.1.7-bin.jar
2.spring配置文件中配置数据库连接池
3.配置JdbcTemplate对象,注入DataSource
4.创建service类,dao类,在dao类注入jdbcTemplate模板对象
使用JdbcTmplate中的update()方法:
返回值update代表加了几条数据
修改:
删除:
查询:
- 返回值:
- 返回对象:
* 返回集合:
批量操作
- 批量添加:
- 批量修改
- 批量删除:
事务
1.定义:一组同时成功或失败的操作。
2.事务特性:ACID(原子,一致,隔离,持久)
java结构
1.创建一个表:
xml文件:
和前面一样,开启组件扫描—>创建DataSource—>创建JdbcTemplate并把DataSource属性注入。
Service:
UserDao接口:
UserDaoImpl类:
测试方法:
- 事务一般添加到JAVAEE中的Service层中
编程式事务管理和声明式事务管理(常用)。
注解常用,Spring事务管理底层使用AOP。
- 事务设计的基本思路:
Spring针对不同框架提供不同接口,顶层接口PlatformTransactionManeger:
声明式:
(1)spring配置文件中配置事务管理器(DataSourceTransactionManeger)
(2)开启事务注解:
(3)在类或者方法上添加注解:- @Transaction(类上说明所有方法都填加,方法只表示该方法有注解)
- 参数配置
- (1)传播行为:
A()中调用B():
update:A有事务,B就在这个事务中,若没有,则创建事务。
updatenew: A()有没有,调用B()时都要创建新的事务。
- (2)隔离级别:读未提交(脏读)、读已提交(不可重复读)、可重复读(幻读)、序列化
- (3)超时:一定时间不提交,自动回滚。(默认-1,不超时)
- (4)是否只读(默认false)
- (5)回滚:出现哪些异常进行回滚
- (6)不回滚:出现哪些异常不回滚
2.基于xml方式的事务管理
(1)配置管理器
(2)配置通知
(3)配置切入点和切面
3.完全注解的事务操作
测试:
Spring5新特性
1.整个代码基于java8,运行时兼容JDK9.
2.自带日志封装。
(1)Spring5移除了Log4jConfigListener, 官方建议使用Log4j2。
(2)Spring5框架整合Log4j2
一、引入所需jar包:
二、创建log4j2.xml文件
(名字固定,内容固定)
优先级:越往右优先级越高,左侧都会显示
手动输出日志:
三、支持@Nullable注解
可用在方法(返回值可为空),属性,参数上,表示值可以为空。
四、支持函数式风格GenericApplicationContex
五、整合JUnit5
(1)整合Unit4
- (1)引入依赖
- (2)注解方式创建测试类
(2)整合JUnit5
-
SpringWebflux介绍
前置知识:
(1)Spring5添加的新模块,用于Web开发,功能和Spring MVC类似,使用响应式编程的框架。
(2)传统的Web框架,如SpringMVC,都是基于Servlet容器,而Webflu是一种异步非阻塞框架,Servlet3.1以后才支持,核心是基于Reactor的相关API实现的。
(3)特点:
第一,非阻塞:有限资源下实现更大的吞吐量
第二,函数式编程:基于java8函数式编程实现路由请求。
(4)比较SpringMVC:
第一,两个框架都可以使用注解,都运行在Tomet容器中。
第二,SpringWebflux 异步响应式编程,SpringMVC使用命令式编程。 -
响应式编程
java8提供观察者模式,两个类Observe和Observable
-
Webflux执行流程和核心API
-
SpringWebflux(基于注解编程模型)
-
SpringWebflux(基于函数式编程模型)
总结
1.Spring框架概述
2.IOC容器
3.AOP
4.JdbcTemplate
5.事务管理
6.Spring5新特性
这里没学明白,SpringWebflux听蒙了,先去补一补其他知识,回来再看: