Spring框架(三)组件扫描.组件装配.Spring DAO 中的核心类.JdbcTemplate 的API

Spring框架(三)

目录:
1.什么是组件扫描
2.如何完成组件扫描*****
3.和组件扫描相关的其它标注***
4.组件装配相关的标注******
5.Spring DAO 做了哪些改进
6.Spring DAO 中的核心类 JdbcTemplate
7. 采用继承JdbcDaoSupport 来完成 JdbcTemplate 的使用
8. 采用不继承JdbcDaoSupport 来完成 JdbcTemplate 的使用
9.JdbcTemplate 的API

1.什么是组件扫描

Component Scan 组件扫描技术
是Spring 提供的一套基于注解(标注)
用来解决组件的创建 组装 维护组件关系的技术 这个技术可以大大的简化 XML的编写。

2.如何完成组件扫描 10000000

2.1 建立一个项目
    导入jar包(ioc aop)
    拷贝配置文件到 src
2.2 自定义一个java 类
2.3 在配置文件中开启组件扫描
    <context:component-scan base-package="包名" />
2.4 在java类上 打对应的标注
    @Component 通用层标注
    @Repository 持久层标注
    @Service 业务层标注
    @Controller 控制层标注
2.5 创建Spring 容器 从容器中获取组件进行测试

3.和组件扫描相关的其它标注 7

控制作用域的标注
    @Scope("singleton")
    可以通过 prototype 调整成非单例
控制初始化的标注
    @PostConstruct
    加在初始化方法上
    完成对象初始化
控制销毁的标注
    @PreDestroy
    加在销毁方法上

4.组件装配相关的标注 10000000000000000000000000000000000000000

4.1 @Value
    用在 成员变量 set方法上
    如果是赋值简单值 直接@Value("值")
    如果是复杂值 则使用 @Value("#{对象id}")
4.2 @Autowired
    用在 成员变量 set方法 还有构造方法上
    它是解决复杂值注入问题的
    它优先使用类型进行匹配
    如果类型有冲突 则启用名字进行匹配。
    @Qualifier("cc") 可以结合 @Qualifier 来指定名字查找 找不到会报错 不再启用类型
    @Autowired 对组件的依赖 默认属于强依赖 可以通过 required = false 指定弱依赖
    @Qualifier 不能用在构造方法上
4.3 @Resource
    用在 成员变量 set方法
    它是解决复杂值注入问题的
    它优先使用名字进行匹配 如果匹配不上 会启用类型
    它是JDK 中的标注 但是可以完美的和Spring 结合
    它可以指定名字查找 需要使用name 属性来指定 不能解决强依赖

5.Spring DAO 做了哪些改进

简化了DAO 实现类的编写
对jdbc代码做了高级的封装
提供了基于AOP的事务管理
对jdbc 中的检查异常 做了封装
封装成了 DataAccessException
这个异常继承自RuntimeException

6.Spring DAO 中的核心类 JdbcTemplate

这个类可以完成
驱动加载
连接获取
sql执行环境获取
资源释放
JdbcDaoSupport这个类可以提供 JdbcTemplate
  1. 采用继承JdbcDaoSupport 来完成 JdbcTemplate 的使用

    7.1 建立一个项目
    导入jar包(ioc aop dao 连接池 数据库驱动)
    并拷贝配置文件到src下
    7.2 编写一个DAO 接口
    编写一个查询表中数据条数的方法
    7.3 编写一个DAO 的实现类
    继承 JdbcDaoSupport
    并实现DAO接口
    开启组件扫描
    在实现类上加标注 @Repository
    给 DAO实现类的父类 JdbcDaoSupport 设置一个dataSource
    使用JdbcDaoSupport 中的模板 完成查询
    7.4 构建Spring 容器
    从容器中获取dao 实现类 测试

  2. 采用不继承JdbcDaoSupport 来完成 JdbcTemplate 的使用

    8.1 建立一个项目
    导入jar包(ioc aop dao 连接池 数据库驱动)
    并拷贝配置文件到src下
    8.2 编写一个DAO 接口
    编写一个查询表中数据条数的方法
    8.3 编写一个DAO 的实现类
    实现DAO接口
    自定义一个模板 JdbcTemplate
    从容器中加载这个类型对应的对象
    容器中定义一个 JdbcTemplate
    这个对象依赖于dataSource
    开启组件扫描
    在实现类上加标注 @Repository
    使用自己的模板 完成查询

    8.4 构建Spring 容器
    从容器中获取dao 实现类 测试

    9.JdbcTemplate 的API
    queryForInt 查询一个整数
    queryForObject 查询一个对象 整数 字符串
    上面的两个 只能查询一个数据 查询的列数也只能是1

    如何完成多列的查询
    比如根据id 查询一个用户对象
    需要用到 RowMapper
    queryForObject + RowMapper
    查询所有 也可以使用上面的 RowMapper
    query + RowMapper

    如何完成增删改
    update

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值