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
);

1.Spring对JDBC整合支持的更多相关文章

  1. 【spring基础】spring与jdbc整合详解

    先上一段简单示例 public class MyTemplate { private DataSource dataSource; public DataSource getDataSource() ...

  2. 8.Spring对JDBC的支持和事务

    1.Spring对JDBC的支持 DAO : Spring中对数据访问对象(DAO)的支持旨在简化Spring与数据访问技术的操作,使JDBC.Hibernate.JPA和JDO等采用统一的方式访问 ...

  3. [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. Spring对jdbc的支持

    Spring对jdbc技术提供了很好的支持. 体现在: 1)Spring对c3p连接池的支持很完善: 2)Spring对jdbc提供了JdbcTemplate,来简化jdbc操作: 1.使用步骤 1) ...

  5. spring 对JDBC的支持 (8)

    目录 一.jdbc的简介 二.jdbcTemplate 的使用 2.1 maven 引入spring - jdbc ,c3p0 ,数据库mysql驱动 2.2 配置 数据源以及jdbcTemplate ...

  6. Spring对 JDBC 的支持,JdbcTemplate类的使用

    导包:spring框架的包 和 连接数据库连接池的c3p0包 连接mysql数据库的包; 在src目录下建立jdbc.properties文件:存放连接数据库的属性值 jdbc.user=root j ...

  7. Spring框架学习笔记(9)——Spring对JDBC的支持

    一.使用JdbcTemplate和JdbcDaoSupport 1.配置并连接数据库 ①创建项目并添加jar包,要比之前Spring项目多添加两个jar包c3p0-0.9.1.2.jar和mysql- ...

  8. Spring 对JDBC的支持(JdbcTemplate)

    Spring对数据库的操作,使用JdbcTemplate对象 需要引入相关的jar文件 如版本:(Spring核心jar包就不列了) spring-jdbc-3.2.5.RELEASE.jar spr ...

  9. spring与jdbc整合

    spring+jdbc开发,我使用的是c3p0连接池 1.数据库建表: create table person( id int primary key auto_increment, name var ...

随机推荐

  1. 【魔改】莫队算法+组合数公式 杭电多校赛4 Problem B. Harvest of Apples

    http://acm.hdu.edu.cn/showproblem.php?pid=6333 莫队算法是一个离线区间分块瞎搞算法,只要满足:1.离线  2.可以O(1)从区间(L,R)更新到(L±1, ...

  2. maven工程之pom模板(hadoop、hive、hbase)

    以下配置文件涵盖了hadoop.hive.hbase开发支持库的配置. 仅需针对maven工程pom.xml文件做相应更改就可以自动生成hadoop开发支持库. <properties>  ...

  3. hive中的几个参数:元数据配置、仓库位置、打印表字段相关参数

    hive仓库位置由以下参数决定,默认位置/user/hive/warehouse: <property>         <name>hive.metastore.wareho ...

  4. 下载文件的协议:HTTP、FTP、P2P

    本篇学习笔记以HTTP.FTP.P2P叙述与网上下载文件有关的协议 需要掌握的要点: 下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载 ...

  5. iOS循环引用常见场景和解决办法

    好多场景会导致循环引用,例如使用Block.线程.委托.通知.观察者都可能会导致循环引用. 1.委托 遵守一个规则,委托方持有代理方的强引用,代理方持有委托方的弱引用. 实际场景中,委托方会是一个控制 ...

  6. 出于性能考虑,C语言自动地以传地址的方式将数组传递给被调函数 const 编译错误 最小权限原则

    #include <stdio.h> int main(void) { char array[5]; printf("array=%p,&array[0]=%p,& ...

  7. 游戏引擎架构 && windows 核心编程

    欲想正人,必先正己. 静坐当思己过,闲谈莫论人非. 垂直同步的作用: 为避免画面撕裂,许多渲染引擎会在交换缓冲区之前,等待显示器的垂直区间消隐,即电子枪重归屏幕上角的时间. 高分辨率计时器的时间漂移 ...

  8. Java+selenium 如何操作日历控件

    场景:一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 但是,有的日期控件是readonly的 ,比如神 ...

  9. zabbix宏(macro)使用:自定义监控阈值

    一.简单应用场景 zabbix在监控cpu load时并没有考虑客户端cpu的个数和核心数量,当平均5分钟的负载达到5时zabbix执行报警动作,这样是非常不合理的,笔者的被监控机器有四核和单核,现在 ...

  10. Verilog如何从外部更改模块内参数

    例如有一个模块 module x(a,b,c); input a,b; output c; 'd0, h=9'd3; ...... endmodule 两种解决方法: 1.使用带有参数值的模块实例语句 ...