zoukankan      html  css  js  c++  java
  • [转] SpringJdbc的几种不同的用法

    转自:http://vsp.iteye.com/blog/1182887

    Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试 
    首页先来创建一个dao接口 

    Java代码  收藏代码
    1. package com.wys.dao;  
    2.   
    3. public interface IUserDao {  
    4.     void save();  
    5. }  



    第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplate 

    Java代码  收藏代码
    1. package com.wys.dao.impl;  
    2.   
    3. import java.util.Map;  
    4.   
    5. import org.springframework.jdbc.core.support.JdbcDaoSupport;  
    6.   
    7.   
    8. import com.wys.dao.IUserDao;  
    9.   
    10. public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {  
    11.       
    12.       
    13.     @Override  
    14.     public void save() {  
    15.         String sql = "**********";  
    16.         Map<String,?> map = this.getJdbcTemplate().queryForMap(sql);  
    17.         System.out.println("成功!");  
    18.           
    19.     }  
    20.       
    21.       
    22.   
    23. }  


    配置文件如下: 

    Java代码  收藏代码
    1. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
    2.         <property name="dataSource" ref="dataSource" />  
    3.     </bean>  
    4.     <bean id="userImpDao" class="com.wys.dao.impl.UserDaoImpl">  
    5.         <property name="jdbcTemplate" ref="jdbcTemplate" />  
    6. </bean>  


    JdbcTemplate提供了众多的对数据库操作的方法 
    第二种方法是组合JdbcTemplate,因为JdbcTemplate的创建需要注入DataSource,所以这里只需要直接注入DataSource就可以 

    Java代码  收藏代码
    1. package com.wys.dao.impl;  
    2.   
    3. import java.util.Map;  
    4.   
    5. import javax.sql.DataSource;  
    6.   
    7. import org.springframework.context.ApplicationContext;  
    8. import org.springframework.context.support.ClassPathXmlApplicationContext;  
    9. import org.springframework.jdbc.core.JdbcTemplate;  
    10. import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
    11. import org.springframework.jdbc.core.support.JdbcDaoSupport;  
    12.   
    13.   
    14. import com.wys.dao.IUserDao;  
    15.   
    16. public class UserDao2Impl implements IUserDao {  
    17.       
    18.     private JdbcTemplate jdbcTemplate;  
    19.   
    20.       
    21.     @Override  
    22.     public void save() {  
    23.           
    24.         String sql = "******";        
    25.         Map<String,?> map = this.jdbcTemplate.queryForMap(sql);  
    26.           
    27.         System.out.println("成功!");  
    28.           
    29.           
    30.   
    31.     }  
    32.     //注入DataSource   
    33.     public void setDataSource(DataSource dataSource) {  
    34.         jdbcTemplate = new JdbcTemplate(dataSource);  
    35.     }  
    36.       
    37.           
    38.       
    39.   
    40. }  



    配置文件 

    Java代码  收藏代码
    1. <bean id="userImpl2Dao" class="com.wys.dao.impl.UserDao2Impl">  
    2.         <property name="dataSource" ref="dataSource" />  
    3.     </bean>  



    第三种方法是继承SimpleJdbcDaoSupport,通过SimpleJdbcDaoSupport可以获取SimpleJdbcTemplate,SimpleJdbcTemplate里也提供了大量的操作数据库的方法,因为SimpleJdbcDaoSupport继承了JdbcDaoSupport,所有可以获得JdbcTemplate,JdbcTemplate相对SimpleJdbcTemplate提供了更多和更高级的一些操作的方法,根据需要来使用,这里只需要直接注入JdbcTemplate,因为SimpleJdbcTemplate是通过JdbcTemplate来创建的 

    Java代码  收藏代码
    1. package com.wys.dao.impl;  
    2.   
    3. import java.util.Map;  
    4.   
    5. import javax.sql.DataSource;  
    6.   
    7. import org.springframework.context.ApplicationContext;  
    8. import org.springframework.context.support.ClassPathXmlApplicationContext;  
    9. import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;  
    10. import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
    11. import org.springframework.jdbc.core.support.JdbcDaoSupport;  
    12.   
    13.   
    14. import com.wys.dao.IUserDao;  
    15.   
    16. public class UserDao3Impl extends SimpleJdbcDaoSupport implements IUserDao {  
    17.       
    18.       
    19.       
    20.     @Override  
    21.     public void save() {  
    22.           
    23.         String sql = "***";       
    24.         Map<String,Object> map = this.getSimpleJdbcTemplate().queryForMap(sql);//SimpleJdbcTemplate  
    25.         Map<String,Object> map2 = this.getJdbcTemplate().queryForMap(sql);//JdbcTemplate  
    26.           
    27.                   
    28.         System.out.println("成功!");  
    29.   
    30.     }  
    31.       
    32.       
    33.       
    34.       
    35. }  


    配置如下: 

    Java代码  收藏代码
    1. <bean id="userImpl3Dao" class="com.wys.dao.impl.UserDao3Impl">  
    2.         <property name="jdbcTemplate" ref="jdbcTemplate" />  
    3.     </bean>  


    第四种直接组合SimpleJdbcTemplate,因为SimpleJdbcTemplate的创建是需要DataSource的,所以需要注入DataSource 

    Java代码  收藏代码
    1. package com.wys.dao.impl;  
    2.   
    3. import java.util.Map;  
    4.   
    5. import javax.sql.DataSource;  
    6.   
    7. import org.springframework.context.ApplicationContext;  
    8. import org.springframework.context.support.ClassPathXmlApplicationContext;  
    9. import org.springframework.jdbc.core.JdbcTemplate;  
    10. import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
    11. import org.springframework.jdbc.core.support.JdbcDaoSupport;  
    12.   
    13.   
    14. import com.wys.dao.IUserDao;  
    15.   
    16. public class UserDao4Impl implements IUserDao {  
    17.       
    18.     private SimpleJdbcTemplate jdbcTemplate;  
    19.   
    20.       
    21.     @Override  
    22.     public void save() {  
    23.           
    24.         String sql = "******";        
    25.         Map<String,?> map = this.jdbcTemplate.queryForMap(sql);  
    26.           
    27.         System.out.println("成功!");  
    28.           
    29.           
    30.   
    31.     }  
    32.       
    33.     public void setDataSource(DataSource dataSource) {  
    34.         jdbcTemplate = new SimpleJdbcTemplate(dataSource);  
    35.     }  
    36.       
    37.           
    38.       
    39.   
    40. }  


    配置文件: 

    Java代码  收藏代码
    1. <bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl">  
    2.         <property name="dataSource" ref="dataSource" />  
    3.     </bean>  



    第五种方法也是组全JdbcTemplate,直接注入JdbcTemplate,而不是DataSource ,因为在JdbcTemplate中已经注入了DataSource 

    Java代码  收藏代码
    1. package com.wys.dao.impl;  
    2.   
    3. import java.util.Map;  
    4.   
    5. import javax.sql.DataSource;  
    6.   
    7. import org.springframework.context.ApplicationContext;  
    8. import org.springframework.context.support.ClassPathXmlApplicationContext;  
    9. import org.springframework.jdbc.core.JdbcTemplate;  
    10. import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;  
    11. import org.springframework.jdbc.core.support.JdbcDaoSupport;  
    12.   
    13.   
    14. import com.wys.dao.IUserDao;  
    15.   
    16. public class UserDao5Impl implements IUserDao {  
    17.       
    18.     private JdbcTemplate jdbcTemplate;  
    19.   
    20.       
    21.     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
    22.         this.jdbcTemplate = jdbcTemplate;  
    23.     }  
    24.   
    25.   
    26.   
    27.     @Override  
    28.     public void save() {  
    29.           
    30.         String sql = "*****";         
    31.         Map<String,?> map = this.jdbcTemplate.queryForMap(sql);         
    32.         System.out.println("成功!");  
    33.   
    34.     }         
    35.       
    36.       
    37. }  



    配置如下 

    Java代码  收藏代码
    1. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
    2.         <property name="dataSource" ref="dataSource" />  
    3.     </bean>  
    4. <bean id="userImpl5Dao" class="com.wys.dao.impl.UserDao5Impl">  
    5.         <property name="jdbcTemplate" ref="jdbcTemplate" />  
    6.     </bean>  



    其实方法还有很多种,关键是看你是需要继承还是组合,需要注入的对象是什么!

  • 相关阅读:
    获取缓存文件大小并清理 By HL
    iOS 模糊、精确搜索匹配功能方法总结 By HL
    让 iOS 设备 “说出” 你想说的话!! #DF
    自定义索引--秀清
    云端iclound使用-陈棚
    IM开发之Socket通信开源类库CocoaAsyncSocket
    iOS App 架构文章推荐
    IM开发通信协议基础知识(一)---TCP、UDP、HTTP、SOCKET
    [手游项目5]windows获得当前进程名
    【软件安装】c++11安装
  • 原文地址:https://www.cnblogs.com/jianglong-liang/p/4612356.html
Copyright © 2011-2022 走看看