SpringJdbc的几种不同的用法
2014-10-11 14:24
405 查看
Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试
首页先来创建一个dao接口
Java代码
package com.wys.dao; public interface 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.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); } }
配置文件
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.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("成功!"); } }
配置如下:
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.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); } }
配置文件:
Java代码
<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl"> <property name="dataSource" ref="dataSource" /> </bean>
第五种方法也是组全JdbcTemplate,直接注入JdbcTemplate,而不是DataSource ,因为在JdbcTemplate中已经注入了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.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("成功!"); } }
配置如下
Java代码
<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>
其实方法还有很多种,关键是看你是需要继承还是组合,需要注入的对象是什么!
Spring对jdbc做了良好的封装,本人在学习时做了以下几种方式的尝试
首页先来创建一个dao接口
Java代码
package com.wys.dao; public interface IUserDao { void save(); }
package com.wys.dao; public interface 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("成功!"); } }
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>
<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.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); } }
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); } }
配置文件
Java代码
<bean id="userImpl2Dao" class="com.wys.dao.impl.UserDao2Impl"> <property name="dataSource" ref="dataSource" /> </bean>
<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.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("成功!"); } }
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("成功!"); } }
配置如下:
Java代码
<bean id="userImpl3Dao" class="com.wys.dao.impl.UserDao3Impl"> <property name="jdbcTemplate" ref="jdbcTemplate" /> </bean>
<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.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); } }
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); } }
配置文件:
Java代码
<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl"> <property name="dataSource" ref="dataSource" /> </bean>
<bean id="userImpl4Dao" class="com.wys.dao.impl.UserDao4Impl"> <property name="dataSource" ref="dataSource" /> </bean>
第五种方法也是组全JdbcTemplate,直接注入JdbcTemplate,而不是DataSource ,因为在JdbcTemplate中已经注入了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.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("成功!"); } }
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("成功!"); } }
配置如下
Java代码
<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>
<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>
其实方法还有很多种,关键是看你是需要继承还是组合,需要注入的对象是什么!
相关文章推荐
- Spring_Jdbc的几种不同用法
- [转] SpringJdbc的几种不同的用法
- JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
- JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
- Spring-Hibernate的template的几种用法
- Spring几种不同方式配置Bean
- spring-test几种用法
- spring-test几种用法
- Professional Java Development with the Spring Framework学习笔记(1) - JdbcTemplate 中Query的几种用法
- spring-test几种用法
- Spring学习之配置Bean几种不同的方式
- Spring aop--几种不同的使用方式
- spring-test几种用法
- spring中jdbc.properties用法
- Spring aop--几种不同的使用方式
- spring中jdbc.properties配置文件用法
- Flex中关于DateField控件的selectableRange属性的几种不同用法的例子
- SpringJDBC+SpringMVC+MySQL的简单入门级用法
- spring-test几种用法
- spring-test几种用法