阶段3 2.Spring_09.JdbcTemplate的基本使用_6 JdbcDaoSupport的使用以及Dao的两种编写方式
复制三个出来。分别叫做 OrderDaoImpl、ProductDaoImpl、UserDaoImpl 复制这三个出来就是为了解决重复性代码的问题。

每个dao中都有这段代码。这些都是重复性的代码。在我们的实际开发过程中,是可以避免的

延时完 就删掉其他几个实现类。还是保留AccountDaoImpl

复制一个出来,改名叫做2

抽取dao中的重复代码

把公共的代码抽取出来


删除后这里面的就都报错了

还需要提供get方法

然后就可以对dao中的jdbcTemplate进行替换了。使用父类的getJdbcTemplate方法

也可以前面加上super点。表示调用父类的方法

定义DataSource并实现set方法。

如果IDEA没有自动导包的话。这里自己上面手动导入包

这个时候DataSource就有内容了。

new一个jdbcTemplate。里面是支持构造方法初始化的

这里的DataSource虽然声明和赋值了,但是没有用,可以删掉

修改前

修改后。值在accountDao里面注入dataSource,

上面注入dataSource后,它会触发这个的setDataSource

测试

数据被更新了。

spring 的方式
所以这个类通过spring也可以实现这个操作。,把JdbcDaoSupport这个类代码全部注释掉

注释后。dao里面自动导入了一个包


主要作用:去除掉注入和定义的重复代码
区别
区别,如果我是注解的方式。这里我们自己定义的jdbcTemplate可以用Autowired自动注入机那里

一旦继承了spring提供的这个JdbcDaoSupport

想在这里加注解是不可能的了。因为这个位置是spring的jar包中的代码。我们改不了,这里是只读属性的

自己定义的方式可以应用于xml和注解两种方式
一定继承了spring提供的JdbcDaoSupport。再想用注解的方式就变的比较麻烦了。所以这两种dao的区别,。就看你才用哪种方式配置。

如果是注解配置才用,Impl2这的这种方式

如果是xml的配置就才用,继承spring 的jdbcDaoSupport这种方式

以上就是dao编写的两种方式
阶段3 2.Spring_09.JdbcTemplate的基本使用_6 JdbcDaoSupport的使用以及Dao的两种编写方式的更多相关文章
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
resources下新建File文件 bean.xml 配置jdbcTemplate 注入DataSource 新建测试方法 复制demo1改个名字叫做demo2 编写Insert的方法
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_3 JdbcTemplate在Dao中的使用
实际的开发过程中都是基于dao的 创建持久层dao 定义三个方法 持久层实现类 创建dao的实现类. 添加未实现的方法 通过spring注入 jdbcTemplate.所以这里生成一个jdbcTemp ...
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_2 JdbcTemplate的概述和入门
先看这张图 1.spring中的JdbcTemplate JdbcTemplate的作用: 它就是用于和数据库交互的,实现对表的CRUD操作 如何创建该对象: ...
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_4 JdbcTemplate的CRUD操作
复制demo起名3 保存 update delete selct 有这么多的重载方法 如何去定位 可变参数是JDK1.5版本之后才有的东西 RowMapper 实现RowMapper这个接口.然后实现 ...
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_1 今日课程内容介绍
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_11_练习:集合元素处理(Stream方式)
- centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课
centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ...
- Spring Boot 两种多数据源配置:JdbcTemplate、Spring-data-jpa
多数据源配置 JdbcTemplate支持 Spring-data-jpa支持 多数据源配置 创建一个Spring配置类,定义两个DataSource用来读取application.propertie ...
- 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法
具体见第三阶段scala-day01中的文档(scala编程基础---基础语法) 1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...
随机推荐
- 利用nethogs查看哪些进程占用网络带宽
一.安装nethogs centos6版本安装: 1.安装依赖包 [root@hlsms-fensheng- ~]# yum install ncurses* 已加载插件:fastestmirror, ...
- 在linux环境下安装oracle的问题记录
问题1 xhost:unable to open display 解决办法: 在linux虚拟机本机打开终端,执行 [root@bogon ~]# DISPLAY=:0.0;export DISPLA ...
- [牛客] [#1108 J] [树形结构] 买一送一
2019牛客国庆集训派对day3 链接:https://ac.nowcoder.com/acm/contest/1108/J来源:牛客网 题意 ICPCCamp 有 n 个商店,用 $1,2,..., ...
- mysql导入redis
将mysql中数据库指定表导入redis 如何将mysql中某个数据库中的表数据快速导入redis? 以下将演示将本地127.0.0.1中数据库test中的表t_abc导入本地redis中.步骤如下: ...
- 双向链表/list
双向链表结构如下 双向链表结构中元素在内存中不是紧邻空间,而是每个元素中存放上一个元素和后一个元素的地址 第一个元素称为头(head)元素,前连接(前置指针域)为nil 最后一个元素称为尾(foot) ...
- fwrite()
fwrite(),最好写strlen()个字节,否则可能有乱码
- ES6学习笔记(对象新增方法)
1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0. ...
- [Go] 使用读写锁对map资源进行安全处理
当需要有一个全局性的map集合资源进行增删改数据时,需要对该map资源增加读写锁,防止并发时出现安全问题 下面的类就是举例 , 属性中的Conns模拟存储一些资源,对这些资源进行并发的增加数据,使用写 ...
- dockerfile:python-cuda-nvidia-cudnn
centos7 FROM centos:7 MAINTAINER yon@DataExa.com RUN yum -y install make wget \ && wget -O / ...
- js 创建节点 以及 节点属性 删除节点
case 'copy': var B1 = document.getElementById("B1"); //获得B1下的html文本 var copy_dom = documen ...