博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring自学教程-jabc编程详解、RowMapper使用(三)
阅读量:6525 次
发布时间:2019-06-24

本文共 2362 字,大约阅读时间需要 7 分钟。

一、JDBC

1、JDBC的编程特点

     静态代码+动态变量 = jdbc编程。在spring中动态变量可以用注入的形式给予。这样的编程方式适合包装成模板。静态代码构成了模板,而动态变量则是需要传入的参数。

2、Spring引入JDBC

    配置文件中配置数据库的连接

1
2
3
4
5
6
7
8
9
<!--
       
配置dbcp的数据库连接池
   
-->
   
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
>
       
<
property
name
=
"driverClassName"
value
=
"com.mysql.jdbc.Driver"
/>
       
<
property
name
=
"url"
value
=
"jdbc:mysql://localhost:3306/hibernate0909"
/>
       
<
property
name
=
"username"
value
=
"root"
/>
       
<
property
name
=
"password"
value
=
"root"
/>
   
</
bean
>

配置好后,我们就可以在客户端进行连接了,下面说些JdbcTemplate的事情。

首先我们看下JdbcTemplate类,我们找到第一个划红圈的地方,就是我们在spring中配置的DataSource注入到JdbcTemplate中,我们就可以使用JdbcTemplate模板了。

JdbcTemplate把所有的对数据库的操作都封装在了一起,第二个红圈就是我们想要的结果,这样省去了我们自己写的函数了,很像是别人写的类我们直接拿来用一样。。。。

212057313391188.png

那我们怎样把DataSource传递给JdbcTemplate呢?

下面我们看看这些相关的类是怎样调用的,也就是怎样依赖注入的

212057343397704.png

212057353195633.png

这样我们就可以看出来他们的关系了,那我们就可以很直接的在客户端将DataSource注入到JdbcTemplate中了

下面介绍三种方案来进行注入。。。

(1)客户端通过继承JdbcDaoSupport来进行注入

212057356548204.png

在JdbcDaoTemplate中有个setDataSource的set方法我们就可以注入datasource

212057363692591.png

然后调用createJdbcTemplate

212057368188891.png

之后在调用JdbcTemplate

212057370593435.png

这样才真正的传入datasource了,相关的配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--
       
配置dbcp的数据库连接池
   
-->
   
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
>
       
<
property
name
=
"driverClassName"
value
=
"com.mysql.jdbc.Driver"
/>
       
<
property
name
=
"url"
value
=
"jdbc:mysql://localhost:3306/hibernate0909"
/>
       
<
property
name
=
"username"
value
=
"root"
/>
       
<
property
name
=
"password"
value
=
"root"
/>
   
</
bean
>
    
   
<
bean
id
=
"personDao"
class
=
"cn.itcast.spring0909.jdbc.PersonDaoImpl"
>
       
<
property
name
=
"dataSource"
>
           
<
ref
bean
=
"dataSource"
/>
       
</
property
>
   
</
bean
>

(2)直接引入JdbcTemplate就行了

212057373581992.png

相关的配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
<
bean
id
=
"jdbcTemplate"
class
=
"org.springframework.jdbc.core.JdbcTemplate"
>
    
<
property
name
=
"dataSource"
>
        
<
ref
bean
=
"dataSource"
/>
    
</
property
>
</
bean
>
 
<
bean
id
=
"personDao2"
class
=
"cn.itcast.spring0909.jdbc.PersonDaoImpl2"
>
    
<
property
name
=
"jdbcTemplate"
>
        
<
ref
bean
=
"jdbcTemplate"
/>
    
</
property
>
</
bean
>

(3)直接继承JdbcTemplate,通过构造函数向他的父类中传入datasource

212057379199862.png

相关的配置文件如下:

1
2
3
<
bean
id
=
"personDao3"
class
=
"cn.itcast.spring0909.jdbc.PersonDaoImpl2"
>
    
<
constructor-arg
index
=
"0"
ref
=
"dataSource"
></
constructor-arg
>
</
bean
>

二、RowMapper的使用

 可以通过建立内部类实现RowMapper接口,RowMapper中有一个mapRow方法,所以实现RowMapper接口一定要实现mapRow方法,而对自定义类的包装就在mapRow方法中实现.

212057385212679.png

下面说下他的原理是什么样的。。。就像我们自己写的RowMapper接口一样,只是spring中已经封装好了此类。

212057389745751.png

转载地址:http://pfjbo.baihongyu.com/

你可能感兴趣的文章
Atitit 软件工程概览attilax总结
查看>>
优化LibreOffice如此简单
查看>>
【Oracle 数据迁移】环境oracle 11gR2,exp无法导出空表的表结构【转载】
查看>>
秒杀系统设计方案
查看>>
3D印花芭蕾舞鞋为舞者科学地保护双脚
查看>>
冲浪科技获Ventech China数百万美元天使轮融资,发力自动驾驶行业
查看>>
通过ActionTrail监控AccessKey的使用
查看>>
从 JavaScript 到 TypeScript
查看>>
一个mysql复制中断的案例
查看>>
【最佳实践】OSS开源工具ossutil-大文件断点续传
查看>>
Linux常用的服务器构建
查看>>
深入了解 Weex
查看>>
Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【1】
查看>>
【75位联合作者Nature重磅】AI药神:机器学习模型有望提前五年预测白血病!
查看>>
精通SpringBoot——第二篇:视图解析器,静态资源和区域配置
查看>>
JavaScript基础(六)面向对象
查看>>
总结几点Quartz的经验
查看>>
从veth看虚拟网络设备的qdisc
查看>>
企业的最佳选择?开放式混合云大行其道
查看>>
物联网、自动化的冲击下未来20年职场六大趋势
查看>>