问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用spring整合JDBC

发布网友 发布时间:2022-04-27 10:27

我来回答

2个回答

懂视网 时间:2022-04-29 22:05

1.Spring对DAO技术提供了那些支持
Spring对JDBC等数据库访问技术编写DAO提供以下几个重要支持
Spring对DAO异常提供了统一处理
Spring对DAO编写提供了支持的抽象类
提高编程效率,减少JDBC编码量

2.Spring对DAO异常支持
Spring把特定某种技术的异常,如SQLException,统一装换为自己的异常类型,这些异常以DataAccessException
为父类,它们封装了原始异常对象,不会丢失原始错误信息
DataAccessException继承于RuntimeException,是非检查异常,不会因为没有处理异常而出现编译错误
异常必须处理,可以用拦截器或则界面统一处理

3.Spring对DAO编写支持
Spring为了便于一种一致的方式使用各种数据访问技术,如JDBC、和Hibernate,Spring提供了一套抽象的
DAO类。这些抽象类提供了一些方法,通过他们可以获得与数据库访问技术相关的数据源和其他配置信息。
JdbcTemplate 封装常用的JDBC方法
HibernateTemplate 封装常用Hibernate方法
JDBCDaoSupport JDBC数据访问对象的基类
HibernateDaoSupport Hibernate数据访问对象的基类

4.JdbcDaoSupport
JdbcDaoSupport是利用JDBC技术编写DAO的父类,通过该类提供的方法,便于获取Connection和JdbcTemplate
等对象信息
JdbcDaoSupport使用时需要注入一个DataSource对象
JdbcDaoSupport对代码有一定的侵入性

5.JdbcTemplate
JdbcTemplate封装了连接获取以及连接释放等工作,从而简化了我们对JDBC的使用,避免忘记关闭连接等错误
JdbcTemplate提供了一下主要方法
queryForInt()
queryForObject()
query()
update()
execute()

6.如何编写DAO组件
基于JDBC技术编写DAO组件可以采用下面两种模式
1.DAO继承JdbcDaoSupport,通过getJdbcTemplate()方法获取JdbcTemplate对象,需要在
DAO实现类中注入一个DataSource对象来完成JdbcTemplate的实例化
2.DAO不继承JdbcDaoSupport,在Spring容器中配置JdbcTemplate,然后注入给DAO实现类(更为优雅)

7.继承JdbcDaoSupport的用法-DAO配置
<bean id="myDataSource" 
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="lu123456"></property>
</bean>
<!-- 继承JdbcDaoSupport -->
<bean id="jdbcEmpDao1" class="org.tarena.dao.JdbcEmpDao1">
<property name="dataSource" ref="myDataSource"></property>
</bean>

8.不继承JdbcDaoSupport的用法-DAO配置
<!-- 不继承JdbcDaoSupport -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="myDataSource"></property>
</bean>

<bean id="jdbcEmpDao2" class="org.tarena.dao.JdbcEmpDao2">
<property name="template" ref="jdbcTemplate" ></property>
</bean>

Spring+JDBC基础

标签:

热心网友 时间:2022-04-29 19:13

使用Spring提供的三个JDBC模板类(JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate)操作数据库
一、JdbcTemplate是Spring中最基本的JDBC模板, 利用JDBC和简单的索引参数查询对数据库进行简单访问
二、NamedParameterJdbcTemplate能够在查询的时候把值绑定到SQL里的命名参数,而不是索引参数
NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干;
NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。
三、SimpleJdbcTemplate利用Java5的特性,比如自动装箱、通用和可变参数列表来简化JDBC模板的使用
SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,
SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。
1、使用JDBC Template
JdbcTemplate是一个辅助类,封装了JDBC的操作,直接使用JdbcTemplate很简单~Template只依赖于数据源。
本例子使用的DriverManagerDataSource,是一个“伪”数据源,只是模拟了形式,并没事实现数据源的功能。
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/sampledb");
ds.setUsername("root");
ds.setPassword("");

JdbcTemplate jdbc = new JdbcTemplate();
jdbc.setDataSource(ds);
String sql = "create table t_user1(user_id int primary key,user_name varchar(60))";
jdbc.execute(sql);

2、JdbcDaoSupport,&& 让Spring JDBC更“Spring”
如果在代码中反复声明JdbcTemplate,代码会被污染的很严重,那和JDBC没区别了就~
所以Spring提供了JdbcDaoSupport,所有DAO继承这个类,就会自动获得JdbcTemplate(前提是注入DataSource)。
另外:Spring的xml配置可以很好的用在这里,在xml中配置,基本流程如下:
(1)声明DataSrouce的Bean,这里用BasicDataSource,就是DBCP数据源(Tomcat用的那个)
(2)声明模板JdbcTemplate的Bean,并把DataSource注入之
(3)声明Dao,class为集成自JdbcDaoSupport的东西,并注入JdbcTemplate。
上述Bean生成过程可以用Spring IDE……相当的方便。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑开机时怎么进入安全模式 广东医学院大一新生宿舍怎么样,是不是都是学校分配,不能自己选择_百度... 2012高考理科 考到545 想知道怎么填志愿 我的分数545可以报广东医学院边d专业?我系广东考生 高考排名。高考报志愿。广东医学院。 今年545分补录广东医学院还有机会吗? 徒步穿什么鞋 夫妻之间感情再不好都不要去互相伤害 平时可以穿登山鞋吗 大学生都爱去哪些网站? 3D打印技术和逆向工程有什么区别 天津大麻花哪里最正宗? 小麻花是哪里的特产? 中国最好吃的麻花在哪里? 哪里的麻花最好吃? 哪里的麻花最有名,是怎么做出来的 歌曲《大田后生仔》原唱是谁啊? 求歌曲(大田后生仔)mp3? 大田后生仔这歌用什么语言唱? 歌曲 大田生后仔 原唱是谁? 大田后生仔-千城-「超高无损音质」「动态歌词Lyrics」 一个女的唱的歌中间带闽南歌叫什么名字? 《大田后生仔》旋律欢快,歌词描绘的大田县真美,令人向往 最近德云社翻唱《大田后生仔》火了,谐音歌词一出,彻底忘记原唱 歌曲大田后生仔谁有,分享一下 有一首闽南歌的歌词,为何到最后才知道,你是别人的? 大田后生仔歌词 为什么说那里的姑娘都很安全? 抖音唱的那首潮汕歌叫什么? 求一份大田后生仔的方言翻译? 《大田后生仔》歌词谐音是什么? 如何用spring 调用数据库连接使用jdbc Spring JdbcTemplate的使用和原理详解 想问一下天津的桂发祥十八街麻花哪家是总店,哪家最正宗,感谢 在Spring框架中如何更有效的使用JDBC spring搭建jdbc怎么写 在springmvc里怎么使用jdbc Spring JDBC 怎样使用like查询数据 spring boot jpa 怎么用jdbc spring 与jdbc templement怎么在代码使用注解事物 Spring JDBC 如何获得和生成主键+Spring JDBC对行集的支持 spring mvc、jdbc连接数据库的登录实例,简单点就好,最好是能直接运行... jdbctemplate-spring的jdbcTemplate在静态方法中怎么使用 请教Spring JdbcTemplate的配置和使用 springjdbc连接多个数据库谁有比较好的解决方法 spring JdbcTemplate 如何执行 show tables 类的语句? spring jdbcTemplate 封装调用存储过程的通用方法(oracle数据库)_百度... 急急!!!最近在学习spring+JDBC整合的一个实例出现了一个java.lang.Ill... spring jdbctemplate和java web中jdbc的区别,它有什么好处 Excel表格数据最后三位数自动变为0,该怎么恢复原始正确数据? 牡丹江邮政银行中午休息吗,几点到几点啊