Spring对JDBC的Dao的支持类主要有三个:
JdbcDaoSupport→使用JdbcTemplate模板进行操作
NamedParameterJdbcTemplateySupport→使用NamedParameterJdbcTemplate模板进行操作
SimpleJdbcTemplateSupport→使用SimpleJdbcTemplate模板进行操作
实际上在这三个类中分别封装了一个对应的JDBC模板类
在使用中只要让你自己的Dao继承自Spring给JDBC提供的Dao的支持类,就可以方便的使用他提供的方法
下面着重介绍其中的一个SimpleJdbcTemplateSupport,其它的与其大同小异,请读者自行参考代码解决
一、SimpleJdbcDaoSupport示例
public class SimpleJdbcSupportUserDao extends SimpleJdbcDaoSupport
二、基于注解的示例
1、基于注解
Dao:
添加 @Repository("userDao")
package com.s.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import javax.annotation.Resource; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport; import org.springframework.stereotype.Repository; import com.s.entity.User; @Repository("userDao") public class SimpleJdbcSupportUserDao extends SimpleJdbcDaoSupport{ public void add(User user){ String sql = "insert into user(name,password) values(?,?)"; getSimpleJdbcTemplate().update(sql, user.getName(),user.getPassword()); } /** * 查询所有 * @return User集合 */ public List
Test:
package com.s.test; import java.util.List; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.s.dao.SimpleJdbcSupportUserDao; import com.s.entity.User; public class SimpleJdbcSupportUserDaoTest { @Test public void testAdd(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); User user = new User(); user.setName("spring"); user.setPassword("spring"); SimpleJdbcSupportUserDao dao = (SimpleJdbcSupportUserDao) ac.getBean("userDao"); dao.add(user); } @Test public void testFind(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); SimpleJdbcSupportUserDao dao = (SimpleJdbcSupportUserDao) ac.getBean("userDao"); List
Xml: 在声明部分添加如下属性,使Bean自动注入:
default-autowire="byType"
三、基于Xml的示例
Dao:删除 @Repository("userDao")
Xml:去掉
default-autowire="byType"
添加:
测试方法和使用注解的方法相同
PS:由于让我们的Dao继承了支持类,导致代码的灵活性下降,故此方法是不推荐的