复制三个出来。分别叫做 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编写的两种方式

最新文章

  1. Python 3.4 Library setup
  2. 使用强大的可视化工具redislive来监控我们的redis,别让自己死的太惨~~~
  3. oralce 密码长度
  4. HDU 1086You can Solve a Geometry Problem too(判断两条选段是否有交点)
  5. DSP using MATLAB 示例Example2.3
  6. [问题2014A06] 解答
  7. selenium2.0 处理各种窗口问题解决方法
  8. angularJS 系列(二)——理解指令 understanding directives
  9. JavaScript事件处理程序的3种方式
  10. vue使用Axios做ajax请求
  11. Yii2整合AdminLTE后台主题
  12. MySQL 存储过程循环
  13. matlab练习程序(加权最小二乘)
  14. GIT的前世今生
  15. vue 自学项目笔记
  16. Java知多少(29)覆盖和重载
  17. HTN规划 jshop2
  18. 理解开发HD 钱包涉及的 BIP32、BIP44、BIP39
  19. 简单 babel plugin 开发-使用lerna 工具
  20. PHP 7下安装Swoole和Yar、Yaf

热门文章

  1. epoll机制和简述
  2. python爬虫练习之批量下载zabbix文档
  3. Open Project' has encountered a problem
  4. 安全框架Shiro和SpringSecurity的比较
  5. ping —— 虚拟机
  6. BZOJ 4555 Luogu P4091 [HEOI2016/TJOI2016]求和 (第二类斯特林数)
  7. [pytorch笔记] torch.nn vs torch.nn.functional; model.eval() vs torch.no_grad(); nn.Sequential() vs nn.moduleList
  8. JavaWeb_(request和response)用户登录注册模板_基础版
  9. Android_(游戏)打飞机04:绘画敌机、添加子弹
  10. python3 类的属性、方法、封装、继承及小实例