Spring 传统JDBC编程替代方案

前边我们已经使用过传统JDBC编程方式,接下来让我们看下Spring JDBC框架提供的更好的解决方案。

1)准备需要的jar包并添加到类路径中:

 

java代码:
Java代码    收藏代码
  1. //JDBC抽象框架模块  
  2. org.springframework.jdbc-3.0.5.RELEASE.jar       
  3. //Spring事务管理及一致的DAO访问及非检查异常模块   
  4. org.springframework.transaction-3.0.5.RELEASE.jar   
  5. //hsqldb驱动,hsqldb是一个开源的Java实现数据库,请下载hsqldb2.0.0+版本  
  6. hsqldb.jar  

 

2)传统JDBC编程替代方案:

在使用JdbcTemplate模板类时必须通过DataSource获取数据库连接,Spring JDBC提供了DriverManagerDataSource实现,它通过包装“DriverManager.getConnection”获取数据库连接,具体DataSource相关请参考【7.5.1控制数据库连接】。

 

java代码:
Java代码    收藏代码
  1. package cn.javass.spring.chapter7;  
  2. import java.sql.ResultSet;  
  3. import java.sql.SQLException;  
  4. import org.junit.AfterClass;  
  5. import org.junit.BeforeClass;  
  6. import org.junit.Test;  
  7. import org.springframework.jdbc.core.JdbcTemplate;  
  8. import org.springframework.jdbc.core.RowCallbackHandler;  
  9. import org.springframework.jdbc.datasource.DriverManagerDataSource;  
  10. public class JdbcTemplateTest {  
  11.     private static JdbcTemplate jdbcTemplate;  
  12.     @BeforeClass  
  13.     public static void setUpClass() {  
  14.         String url = "jdbc:hsqldb:mem:test";  
  15.         String username = "sa";  
  16.         String password = "";  
  17.         DriverManagerDataSource dataSource = new DriverManagerDataSource(url, username, password);  
  18.         dataSource.setDriverClassName("org.hsqldb.jdbcDriver");  
  19.         jdbcTemplate = new JdbcTemplate(dataSource);  
  20.     }  
  21.     @Test  
  22.     public void test() {  
  23.         //1.声明SQL  
  24.         String sql = "select * from INFORMATION_SCHEMA.SYSTEM_TABLES";  
  25.         jdbcTemplate.query(sql, new RowCallbackHandler() {  
  26.             @Override  
  27.             public void processRow(ResultSet rs) throws SQLException {  
  28.                 //2.处理结果集  
  29.                 String value = rs.getString("TABLE_NAME");  
  30.                 System.out.println("Column TABLENAME:" + value);  
  31.             }  
  32.         });  
  33.     }  
  34. }  
  35.    


接下来让我们具体分析一下:

1)  jdbc:hsqldb:mem:test:表示使用hsqldb内存数据库,数据库名为“test”。

2)  public static void setUpClass():使用junit的@BeforeClass注解,表示在所以测试方法之前执行,且只执行一次。在此方法中定义了DataSource并使用DataSource对象创建了JdbcTemplate对象。JdbcTemplate对象是线程安全的。

3)  JdbcTemplate执行流程:首先定义SQL,其次调用JdbcTemplate方法执行SQL,最后通过RowCallbackHandler回调处理ResultSet结果集。

Spring JDBC解决方法相比传统JDBC编程方式是不是简单多了,是不是只有可变部分需要我们来做,其他的都由Spring JDBC框架来实现了。

接下来让我们深入JdbcTemplate及其扩展吧。


更多关系Spring的信息

 Spring 论坛  http://www.itchm.com/forum-59-1.html


<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值