1.Spring对JDBC整合支持

时间:2023-12-23 23:11:31

1.Spring对JDBC整合支持
Spring对DAO提供哪些支持
1)Spring对DAO异常提供统一处理
2)Spring对DAO编写提供支持的抽象类
3)提高编程效率,减少DAO编码量

Spring对DAO的异常支持
Spring把特定某种技术的异常,如SQLException,统一转化为自己的异常,异常以DataAccessException为父类,
它封装了原始的异常对象,不会丢失原始的错误信息,

DataAccessException继承于RuntimeException,是非检查异常,不会因为没有处理异常而出现编译错误,异常
必须处理可以用拦截器统一处理

Spring对DAO编写支持
Spring为了便于以一种一致的方式使用各种数据库访问技术,如JDBC,MyBatis,Hibernate,Spring提供一套抽象的DAO类,
通过它们可以与数据库访问技术相关的数据源和其他配置信息

JDBC组件类
jdbcTemplate:封装了常用的JDBC方法
jdbcDaoSupport:JDBC数据访问对象的基类

jdbcDaoSupport
利用JDBC技术编写DAO的父类,通过此类提供的方法,可便于获取Connection对象和JDBCTemplate对象
操作数据库的增删改查方法

jdbcDaoSupport使用时需要注入一个DataSource对象

jdbcTemplate
封装连接获取以及连接释放等工作,提供操作数据库增删改查方法,从而简化对JDBC的使用,避免忘记关闭连接等错误

如何编写DAO组件
基于JDBC技术编写DAO组件可以采用以下两种方式:
1)DAO继承JdbcDaoSupport,通过getJdbcTemplate方法获取JdbcTemplate对象,需要在DAO实现类中注入一个DataSource对象
来完成JdbcTemplate的实例化

2)DAO不继承JdbcDaoSupport,在Spring容器中配置一个JdbcTemplate的Bean,在DAO组件中注入

实例操作
use test;
show tables;

员工表
create table emp(
empno int(4) primary key auto_increment,
ename varchar(10) not null,
salary double(7,2),
bonus double(5,2),
hiredate date,
deptno int(2)
);

主键字段设置成自增长,可不可以给值,可不可以给空值

insert into emp values(
1001,'张三',33333.33,333.33,now(),1
);

insert into emp values(
null,'李四',44444.44,444.44,now(),2
);

insert into emp values(
null,'王五',55555.55,555.55,now(),3
);

insert into emp values(
null,'赵六',66666.66,666.66,now(),4
);