2021-05-03 10:00  阅读(147)
文章分类:Spring 入门教程 文章标签:SpringSpring 教程
©  原文作者:一点教程 原文地址:http://www.yiidian.com/spring/

JdbcDaoSupport是JDBC数据访问对象的超类。它与特定的数据源相关联。Spring Inversion of Control (IOC)容器或BeanFactory负责获得相应数据源的配置详细信息,并将其与JdbcDaoSupport相关联。这个类最重要的功能就是使子类可以使用JdbcTemplate对象。

202105031000367551.png

JdbcTemplate是Spring JDBC框架中最重要的类。引用文献中的话:“它简化了JDBC的使用,有助于避免常见的错误。它执行核心JDBC工作流,保留应用代码以提供SQL和提取结果。”这个类通过执行下面的样板任务来帮助分离JDBC DAO代码的静态部分:

  • 从数据源检索连接。
  • 准备合适的声明对象。
  • 执行SQL CRUD操作。
  • 遍历结果集,然后将结果填入标准的collection对象。
  • 处理SQLException异常并将其转换成更加特定于错误的异常层次结构。

一、准备数据库和表

创建数据库:
create database spring;
use spring;
创建表:
create table account(
id int primary key auto_increment,
name varchar(40),
money float
)character set utf8 collate utf8_general_ci;

二、、编写Dao接口和实现

AccountDao接口:

    
    package com.yiidian.dao;
    
    /**
     * 
     * @author http://www.yiidian.com
     * 
     */
    public interface AccountDao {
    
    	public void save();
    }
    

AccountDaoImpl实现:

    
    package com.yiidian.dao.impl;
    
    import org.springframework.jdbc.core.support.JdbcDaoSupport;
    
    import com.yiidian.dao.AccountDao;
    /**
     * @author http://www.yiidian.com
     *
     */
    public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao {
    	
    	@Override
    	public void save() {
    		this.getJdbcTemplate().execute("insert into account(name,money)values('小泽',500)");
    	}
    
    }
    

三、配置applicationContext.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans.xsd">
            
         <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
         	<property name="location" value="classpath:jdbc.properties"/>
         </bean>   
         
         <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
         	<property name="dataSource" ref="dataSource"/>
         </bean>
            
          <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
         	<property name="driverClassName" value="${jdbc.driverClass}"/>
         	<property name="url" value="${jdbc.url}"/>
         	<property name="username" value="${jdbc.username}"/>
         	<property name="password" value="${jdbc.password}"/>
         </bean>
         
         <!-- 在AccountDaoImpl类直接注入dataSource即可 -->
         <bean id="accountDao" class="com.yiidian.dao.impl.AccountDaoImpl">
         	<property name="dataSource" ref="dataSource"/>
         </bean>
            
    </beans>

注意:这里只需要在Dao类中直接注入DataSource数据源,因为Dao类继承了JdbcDaoSupport,而JdbcDaoSupport底层源码如下:

    
    /**
    	 * Set the JDBC DataSource to be used by this DAO.
    	 */
    	public final void setDataSource(DataSource dataSource) {
    		if (this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
    			this.jdbcTemplate = createJdbcTemplate(dataSource);
    			initTemplateConfig();
    		}
    	}

四、编写测试类

    
    package com.yiidian.test;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.yiidian.dao.AccountDao;
    /**
     * @author http://www.yiidian.com
     *
     */
    public class JdbcTemplateDemo {
    	public static void main(String[] args) {
    		// 1.获取Spring容器
    		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    		// 2.根据id获取bean对象
    		AccountDao dao = (AccountDao)ac.getBean("accountDao");
    		// 3.执行操作
    		dao.save();
    	}
    }
    

五、运行结果

202105031000368622.png

源码下载:http://pan.baidu.com/s/1dFfaNDn

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> JdbcDaoSupport的使用
上一篇
Spring整合Jdbc的HelloWorld
下一篇
JdbcTemplate实现增删改查