SpringJdbc的几种不同的用法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > SpringJdbc的几种不同的用法

SpringJdbc的几种不同的用法

 2011/10/6 8:11:59  wysaijun1314  http://vsp.iteye.com  我要评论(0)
  • 摘要:Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试首页先来创建一个dao接口packagecom.wys.dao;publicinterfaceIUserDao{voidsave();}第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplatepackagecom.wys.dao.impl;importjava.util.Map;importorg.springframework.jdbc.core.support
  • 标签:用法 Spring
Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试
首页先来创建一个dao接口
package com.wys.dao;

public interface IUserDao {
	void save();
}



第一种方式通过继承JdbcDaoSupport来获取JdbcTemplate,需要注入JdbcTemplate
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("成功!");
		
	}
	
	

}


配置文件如下:
<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就可以
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.simple.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);
	}
	
		
	

}



配置文件
<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来创建的
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.simple.SimpleJdbcDaoSupport;
import org.springframework.jdbc.core.simple.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("成功!");

	}
	
	
	
	
}


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

第四种直接组合SimpleJdbcTemplate,因为SimpleJdbcTemplate的创建是需要DataSource的,所以需要注入DataSource
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.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;


import com.wys.dao.IUserDao;

public class UserDao4Impl implements IUserDao {
	
	private SimpleJdbcTemplate jdbcTemplate;

	
	@Override
	public void save() {
		
		String sql = "******";		
		Map<String,?> map = this.jdbcTemplate.queryForMap(sql);
		
		System.out.println("成功!");
		
		

	}
	
	public void setDataSource(DataSource dataSource) {
		jdbcTemplate = new SimpleJdbcTemplate(dataSource);
	}
	
		
	

}


配置文件:
<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl">
		<property name="dataSource" ref="dataSource" />
	</bean>


第五种方法也是组全JdbcTemplate,直接注入JdbcTemplate,而不是DataSource ,因为在JdbcTemplate中已经注入了DataSource
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.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;


import com.wys.dao.IUserDao;

public class UserDao5Impl implements IUserDao {
	
	private JdbcTemplate jdbcTemplate;

	
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}



	@Override
	public void save() {
		
		String sql = "*****";		
		Map<String,?> map = this.jdbcTemplate.queryForMap(sql);		
		System.out.println("成功!");

	}		
	
	
}



配置如下
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
<bean id="userImpl5Dao" class="com.wys.dao.impl.UserDao5Impl">
		<property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>


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


发表评论
用户名: 匿名