(三十二)JdbcDaoSupport支持类

        虽然可以直接利用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)

        此时的代码操作在增加完成后才可以关闭数据库,否则无法关闭.


猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80536115