`
tom&jerry
  • 浏览: 66171 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

好用的SimpleJdbcDaoSupport

阅读更多
    我们在使用Spring的JdbcTemplate 写DAO时,通常可以继承JdbcDaoSupport或直接通过setter方法注入JdbcTemplate。此外spring中还提供了JdbcTemplate 的简化版SimpleJdbcTemplate以及对应的SimpleJdbcDaoSupport。
    SimpleJdbcTemplate提供了对范型的支持,在查询操作时能以更优雅的方式实现,JdbcTemplate则提供了较为丰富的更新操作。
    SimpleJdbcDaoSupport可以分别提供JdbcTemplate和SimpleJdbcTemplate,我们可以通过直接或间接的继承SimpleJdbcDaoSupport来获取更大的灵活性。

package cn.slsoft.beans.basicinfo;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;

public class Subject {
	private int subid;
	private String subName;
	private int subtypeid;
	private String subtypeName;
	private String dcflag;
	private String hscash;
	private String detailflag;
	private int attflag;
	private int assistflag;
	private String fullName;
	private int pid;
	private String pname;

	...省略getter,setter...

	public String toString(){
		return ReflectionToStringBuilder.toString(this);
	}
}




package cn.slsoft.dao.base;

import org.apache.log4j.Logger;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

public class BaseDAO extends SimpleJdbcDaoSupport {
	protected Logger log = Logger.getLogger(this.getClass());
}


package cn.slsoft.dao.basicinfo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import cn.slsoft.beans.basicinfo.Subject;
import cn.slsoft.dao.base.BaseDAO;

public class SubjectDAO extends BaseDAO{
	public String getSubNameByID(int subid){
		String sql = "select subname from s_shop where subid=?";
		log.debug(sql);
		return getSimpleJdbcTemplate().queryForObject(sql, String.class, subid);
	}
	
	public List<Subject> getSubjects(){
		String sql = "select * from s_subject";	
		log.debug(sql);
		return getSimpleJdbcTemplate()
			.query(sql, new SubjectParameterizedRowMapper(), shopid,accid,value);
	}

    public int deleteSubjectById(int subid){
         String sql = "delete from s_subject where subid=" + subid;
         log.debug(sql);
         return getJdbcTemplate().update(sql);
    }
}

class SubjectParameterizedRowMapper implements ParameterizedRowMapper<Subject>{
	@Override
	public Subject mapRow(ResultSet rs, int i) throws SQLException {
		Subject subject = new Subject();
		subject.setAssistflag(rs.getInt("assistflag"));
		subject.setAttflag(rs.getInt("attflag"));
		subject.setDcflag(rs.getString("dcflag"));
		subject.setDetailflag(rs.getString("detailflag"));
		subject.setFullName(rs.getString("fullname"));
		subject.setHscash(rs.getString("hscash"));
		subject.setPid(rs.getInt("parentid"));
		subject.setPname(rs.getString("pname"));
		subject.setSubid(rs.getInt("subid"));
		subject.setSubName(rs.getString("subname"));
		subject.setSubtypeid(rs.getInt("subtypeid"));
		subject.setSubtypeName(rs.getString("subtypename"));
		return subject;
	}
}




分享到:
评论

相关推荐

    Spring MVC+SimpleJdbcDaoSupport增删改查小例子

    **Spring MVC + SimpleJdbcDaoSupport 增删改查小例子详解** Spring MVC 是一个广泛使用的Java Web框架,用于构建高效、灵活的Web应用程序。它提供了模型-视图-控制器(MVC)架构,使得开发者可以将业务逻辑、数据...

    ssh2分页查询

    我们可以使用`SimpleJdbcDaoSupport`或自定义的Dao类,通过`JdbcTemplate`的`queryForList`方法配合RowCallbackHandler实现分页。关键在于构造合适的SQL语句,通常包括`LIMIT`和`OFFSET`子句,以及计算出的偏移量。 ...

    spring +hibernate 详解与配置(附图)

    - 通过使用Spring的`SimpleJdbcDaoSupport`或`HibernateDaoSupport`,开发者可以更轻松地实现DAO层。 3. **配置管理**: - Spring框架的强大配置能力可以方便地管理和配置Hibernate的各种设置。 - 可以使用XML或...

    Spring jdbc中数据库操作对象化模型的实例详解

    - `SimpleJdbcDaoSupport`也是`JdbcDaoSupport`的子类,它支持`SimpleJdbcTemplate`,提供了一种简化版的数据库访问接口。 这些模板类如`JdbcTemplate`、`NamedParameterJdbcTemplate`和`SimpleJdbcTemplate`,...

    SPRING API 2.0.CHM

    All Classes AbstractAdvisorAutoProxyCreator AbstractApplicationContext AbstractApplicationEventMulticaster AbstractAspectJAdvice AbstractAspectJAdvisorFactory AbstractAspectJAdvisorFactory....

Global site tag (gtag.js) - Google Analytics