JdbcTemplate(Spring学习笔记)_Manrf的博客-程序员秘密_jdbctemplate 日志

技术标签: spring  java  Spring  

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
    在这里插入图片描述
    在这里插入图片描述
  1. SpringWebflux介绍
    前置知识:
    在这里插入图片描述
    (1)Spring5添加的新模块,用于Web开发,功能和Spring MVC类似,使用响应式编程的框架。
    (2)传统的Web框架,如SpringMVC,都是基于Servlet容器,而Webflu是一种异步非阻塞框架,Servlet3.1以后才支持,核心是基于Reactor的相关API实现的。
    (3)特点:
    第一,非阻塞:有限资源下实现更大的吞吐量
    第二,函数式编程:基于java8函数式编程实现路由请求。
    (4)比较SpringMVC:
    在这里插入图片描述
    第一,两个框架都可以使用注解,都运行在Tomet容器中。
    第二,SpringWebflux 异步响应式编程,SpringMVC使用命令式编程。

  2. 响应式编程
    java8提供观察者模式,两个类Observe和Observable
    在这里插入图片描述
    在这里插入图片描述

  3. Webflux执行流程和核心API

  4. SpringWebflux(基于注解编程模型)

  5. SpringWebflux(基于函数式编程模型)

总结

1.Spring框架概述
在这里插入图片描述
2.IOC容器
在这里插入图片描述
3.AOP
在这里插入图片描述
4.JdbcTemplate
在这里插入图片描述
5.事务管理
在这里插入图片描述
6.Spring5新特性
这里没学明白,SpringWebflux听蒙了,先去补一补其他知识,回来再看:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37047553/article/details/119711501

智能推荐

Java去除空格(trim())_jijiangpeng的博客-程序员秘密

字符串中存在的首尾空格一般情况下都没有任何意义,如字符串" Hello",但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。trim() 方法的语法形式如下:字符串名.trim()使用 trim() 方法的示例如下:String str=" hello "; Syste...

濒临倒闭的瑜伽馆,只用20天时间就实现逆转,并收入100万!_weixin_shiyinglong1的博客-程序员秘密

有很多瑜伽馆的生意越来越难做,最近也有很多人咨询我,这篇文章就直接给大家分享一个瑜伽馆的真实案例,看看这家瑜伽馆是如何在20天时间里,从濒临倒闭到收入107万。这家瑜伽馆的名字叫做梵语瑜伽馆,开在陕西西安未央区。做了有8个月时间,生意一直不好,马上面临倒闭的风险。一直苦于招不到学员,整个瑜伽馆的装修环境,瑜伽课程教授水平还是非常不错的。瑜伽馆的地理位置也很不错,周围是高档小区,有充足的客源。各方面情况都很不错,但是一直招收不到学员,老板非常苦恼。之后找到一位老师帮忙策划了一个方案,让老板实现了逆转!想

安卓开源库_奇科夫的博客-程序员秘密

Smart-HeaderFooter-RecyclerView★198 - 将Recyclerview添加HeaderView和FooterView。AlphabetIndex-Fast-Scroll-RecyclerView★169 - 强大的AlphabetIndex FastScroller。android-data-binding-recyclerview★478 - 配有Android数据绑定的RecyclerView。

无法安装64(32)位版本的office,因为在您的pc找到了以下32(64)位程序。此问题的完全解决方案_LeeJuen的博客-程序员秘密_很抱歉,无法安装office(32位),因为您的计算机

1.在安装Office时总是不免之前可能因为装个零散的office版本导致了装新版本出现此类问题。这时有以下的解决方案。1.1下载office完全卸载工具完全卸载冲突版本。1.2修改注册表。2.这里我要说的就是第二种方法。这样可以保留原来好不容易装的Access或者Visio这些东西。2.1按

[PWNHUB 公开赛 2018]傻 fufu 的工作日_落魚京的博客-程序员秘密

资料phpjiami 数种解密方法解密脚本PHP免扩展加密(混淆加密)的基本原理考点phpjiami代码审计工具dirsearch蚁剑bpphpjiami脚本WP扫目录发现备份文件index.php.bak下载并打开备注显示通过phpjiami加密phpjiami加密流程加密流程:源码 -> 加密处理(压缩,替换,BASE64,转义)-> 安全处理(验证文件 MD5 值,限制IP、限域名、限时间、防破解、防命令行调试)-> 加密程序成品,再简单的说

随便推点

Elasticsearch 技术分析(九):全文搜索引擎Elasticsearch,这篇文章给讲透了!_weixin_30421809的博客-程序员秘密

之前已经分享过Elasticsearch的使用和原理的知识,由于近期在公司内部做了一次分享,所以本篇主要是基于之前的博文的一个总结,希望通过这篇文章能让读者大致了解Elasticsearch是做什么的以及它的使用和基本原理。生活中的数据搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种:结构化数据 和 非结构化数据。结构化数据: 也称作行数据,是由...

Python NumPy中的diag函数_Jennie_J的博客-程序员秘密_numpy.diag

np.diag(array) 这个函数比较有意思array是一个1维数组时,结果形成一个以一维数组为对角线元素的矩阵array是一个二维矩阵时,结果输出矩阵的对角线元素一般在u,s,vt = svd(data,k) 中比较常用,svd计算出的s是对角线元素的1维数组用于将s还原为对角线矩阵,即对角线上为非零值,其余位置数值均为0u,s,vt = svds(users_items_piv...

Keras深度学习实战(6)——深度学习过拟合问题及解决方法_盼小辉丶的博客-程序员秘密_keras过拟合解决方法

过拟合是在训练数据上能够获得很好的性能, 但是在训练数据外的数据集上却不能很好地拟合数据。本文中,我们介绍了过拟合问题出现原因以及解决过拟合的常用的几种解决方法。

JAVA EXCEL时间的导入_木辛文武的博客-程序员秘密_java导入excel时间格式

JAVA中导入Excel时间的一个问题解决思路布局不知道怎么设计好 就随意了最近在实现公司一个导入EXCEL需求时,发现Excel的时间格式有点奇怪,导入之后采用SimpleDateFormat进行格式化的时候发现,一直格式错误.公司采用的是POI3.8版本的于是乎我选择去百度一下解决方案。这是我采用示范的例子一个只有一个的Excel错误示范来了原本我以为可以将全部格式强行转化为字符串格式进行记录很明显倒出来的不是一个合格的Date格式或者说Long格式的内容。再次期间我不断的查找解决方案,

Quartz 2D 概述_那夜的星空分外清澈的博客-程序员秘密

Quartz 2D 学习总结Quartz 2D 是 Core Graphics 框架的一部分,可用于编辑、绘制图像,创建或显示位图图像,并且可操作 PDF 文档。

推荐文章

热门文章

相关标签