虽然可以直接利用JDBCTemplate进行数据库的操作,但是在大部分的DAO实现子类中,很少有人这样去做,往往会让DAO实现子类既实现了DAO结构同时去继承一个JdbcDaoSupport的抽象类,
因为如果不继承,你的代码就需要编写一个这样的功能:
@Autowired //自动根据匹配类型注入所需要的数据 public NewsDAOImpl(JdbcTemplate jt) { this.jt=jt; }
这些过程应该几哦啊给一个统一的类来进行处理,那么所以就定义了一个JdbcDaoSupport类,但是这个类除了负责处理JdbcTemplate类对象之外,还可以负责数据库的自动关闭,也就是说如果要想让你的开发数据库可以自动关闭,就必须继承JdbcDaoSupport类(org.springframework.jdbc.core.support.JdbcDaoSupport)方法如下:
●设置JDBC操作模板:
public final void setJdbcTemplate(JdbcTemplate jdbcTemplate)
●取得JDBC操作模板:
public final JdbcTemplate getJdbcTemplate()
所有的JDBCTemplate类的对象只有通过getJdbcTemplate()方法取得后才可以正常关闭数据库
范例:修改NewsDAOImpl.java子类
public final void setJdbcTemplate(JdbcTemplate jdbcTepackage cn.zwb.dao.imppl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.support.JdbcDaoSupport; import org.springframework.stereotype.Component; import cn.zwb.dao.INewsDAO; import cn.zwb.vo.News; @Component public class NewsDAOImpl extends JdbcDaoSupport implements INewsDAO{ @Autowired //自动根据匹配类型注入所需要的数据 public NewsDAOImpl(JdbcTemplate jt) { super.setJdbcTemplate(jt); } @Override public boolean doCreate(News vo) throws Exception { final String sql="insert into news(title,pubdate,content) values(?,?,?)"; int count=super.getJdbcTemplate().update(sql,vo.getTitle(),vo.getPubDate(),vo.getContent()); return count>0?true:false; } } mplate)
此时的代码操作在增加完成后才可以关闭数据库,否则无法关闭.