当前位置:编程学习 > JAVA >>

SpringJdbc的几种不同的用法

Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试
首页先来创建一个dao接口
Java代码 
package com.wys.dao; 
 
public inte易做图ce IUserDao { 
    void save(); 


第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplate
Java代码 
package com.wys.dao.impl; 
 
import java.util.Map; 
 
import org.springframework.jdbc.core.support.JdbcDaoSupport; 
 
 
import com.wys.dao.IUserDao; 
 
public class UserDaoImpl extends JdbcDaoSupport implements IUserDao { 
     
     
    @Override 
    public void save() { 
        String sql = "**********"; 
        Map<String,?> map = this.getJdbcTemplate().queryForMap(sql); 
        System.out.println("成功!"); 
         
    } 
     
     
 

配置文件如下:
Java代码 
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 
        <property name="dataSource" ref="dataSource" /> 
    </bean> 
    <bean id="userImpDao" class="com.wys.dao.impl.UserDaoImpl"> 
        <property name="jdbcTemplate" ref="jdbcTemplate" /> 
</bean> 

JdbcTemplate提供了众多的对数据库操作的方法
第二种方法是组合JdbcTemplate,因为JdbcTemplate的创建需要注入DataSource,所以这里只需要直接注入DataSource就可以
Java代码 
package com.wys.dao.impl; 
 
import java.util.Map; 
 
import javax.sql.DataSource; 
 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.jdbc.core.JdbcTemplate; 
import org.springframework.jdbc.core.易做图.SimpleJdbcTemplate; 
import org.springframework.jdbc.core.support.JdbcDaoSupport; 
 
 
import com.wys.dao.IUserDao; 
 
public class UserDao2Impl implements IUserDao { 
     
    private JdbcTemplate jdbcTemplate; 
 
     
    @Override 
    public void save() { 
         
        String sql = "******";       
        Map<String,?> map = this.jdbcTemplate.queryForMap(sql); 
         
        System.out.println("成功!"); 
         
         
 
    } 
    //注入DataSource  
    public void setDataSource(DataSource dataSource) { 
        jdbcTemplate = new JdbcTemplate(dataSource); 
    } 
     
         
     
 


配置文件
Java代码 
<bean id="userImpl2Dao" class="com.wys.dao.impl.UserDao2Impl"> 
        <property name="dataSource" ref="dataSource" /> 
    </bean> 


第三种方法是继承SimpleJdbcDaoSupport,通过SimpleJdbcDaoSupport可以获取SimpleJdbcTemplate,SimpleJdbcTemplate里也提供了大量的操作数据库的方法,因为SimpleJdbcDaoSupport继承了JdbcDaoSupport,所有可以获得JdbcTemplate,JdbcTemplate相对SimpleJdbcTemplate提供了更多和更高级的一些操作的方法,根据需要来使用,这里只需要直接注入JdbcTemplate,因为SimpleJdbcTemplate是通过JdbcTemplate来创建的
Java代码 
package com.wys.dao.impl; 
 
import java.util.Map; 
 
import javax.sql.DataSource; 
 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.jdbc.core.易做图.SimpleJdbcDaoSupport; 
import org.springframework.jdbc.core.易做图.SimpleJdbcTemplate; 
import org.springframework.jdbc.core.support.JdbcDaoSupport; 
 
 
import com.wys.dao.IUserDao; 
 
public class UserDao3Impl extends SimpleJdbcDaoSupport implements IUserDao { 
     
     
     
    @Override 
    public void save() { 
         
        String sql = "***";      
        Map<String,Object> map = this.getSimpleJdbcTemplate().queryForMap(sql);//SimpleJdbcTemplate 
        Map<String,Object> map2 = this.getJdbcTemplate().queryForMap(sql);//JdbcTemplate 
         
                 
        System.out.println("成功!"); 
 
    } 
     
     
     
     

配置如下:
Java代码 
<bean id="userImpl3Dao" class="com.wys.dao.impl.UserDao3Impl"> 
        <property name="jdbcTemplate" ref="jdbcTemplate" /> 
    </bean> 

第四种直接组合SimpleJdbcTemplate,因为SimpleJdbcTemplate的创建是需要DataSource的,所以需要注入DataSource
Java代码 
package com.wys.dao.impl; 
 
import java.util.Map; 
 
import javax.sql.DataSource; 
 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.jdbc.core.JdbcTemplate; 
import org.springframework.jdbc.core.易做图.SimpleJdbcTemplate; 
import org.springframework.jdbc.core.support.JdbcDaoSupport; 
 
 
import com.wys.dao.IUserDao; 
 
public class UserDao4Impl implements IUserDao { 
  

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,