java基类详解_java 封装的基类Springjdbc可以通用详解

package oa.common.dao;

import java.util.List;

import oa.common.model.PageModel;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.RowMapper;

import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;

import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport;

import org.springframework.jdbc.core.namedparam.SqlParameterSource;

public abstract class BaseDAO extends NamedParameterJdbcDaoSupport {

protected final static String PAGE_SQL_PREFIX = "select * from(select m.*,rownum num from (";

protected final static String PAGE_SQL_END = ") m where rownum<=?) where num>?";

/**

* 适用于更新数据库,insert,update, delete

*

* @param namedSql

* :命名参数的SQL语句,而且参数的命名必须和JavaBean中的属性名对应

* @param javaBean

* :javabean对象

* @return

*/

protected int update(String namedSql, Object javaBean) {

SqlParameterSource paramSource = new BeanPropertySqlParameterSource(

javaBean);

return this.getNamedParameterJdbcTemplate().update(namedSql,paramSource);

}

protected int commonUpdate(String sql, Object... paramValue) {

return this.getJdbcTemplate().update(sql, paramValue);

}

protected T getJavaBean(String sql, Class returnType,

Object... paramValue) {

RowMapper rowMapper = new BeanPropertyRowMapper(returnType);

try{

return this.getJdbcTemplate()

.queryForObject(sql, rowMapper, paramValue);

}catch(Exception ex){

return null;

}

}

protected List getList(String sql, Class returnType,

Object... paramValue) {

RowMapper rowMapper = new BeanPropertyRowMapper(returnType);

return this.getJdbcTemplate().query(sql, rowMapper, paramValue);

}

protected List getList(String sql, Class returnType) {

RowMapper rowMapper = new BeanPropertyRowMapper(returnType);

return this.getJdbcTemplate().query(sql, rowMapper);

}

/**

* 计算总记录数

*

* @param countSQL

* 计算总记录数的count语句

* @param paramValue

* 语句中对应的参数值

* @return 总记录数

*/

protected int getCount(String countSQL, List paramValue) {

return this.getJdbcTemplate().queryForInt(countSQL,

paramValue.toArray());

}

protected int getCount(String countSQL, Object... paramValue) {

return this.getJdbcTemplate().queryForInt(countSQL, paramValue);

}

protected PageModel getPageModel(PageModel model,

StringBuilder querySQL, StringBuilder countSQL,

StringBuilder whereSQL, List paramList, Class returnType) {

querySQL.append(whereSQL);

countSQL.append(whereSQL);

// 计算总记录数

int allCount = this.getCount(countSQL.toString(), paramList);

// 获取分页记录集

// 1。构造完整的分页语句

querySQL.insert(0, PAGE_SQL_PREFIX);

querySQL.append(PAGE_SQL_END);

// 2.把分页语句中的参数值加入到paramList中

paramList.add(model.getNumPerPage()* model.getPageNum());

paramList.add(( model.getPageNum() - 1) *model.getNumPerPage());

List result = this.getList(querySQL.toString(), returnType,

paramList.toArray());

PageModel models = new PageModel();

models.setTotalCount(allCount);

models.setNumPerPage(model.getNumPerPage());

models.setPageNum(model.getPageNum());

models.setResult(result);

models.setOrderDirection(model.getOrderDirection());

models.setOrderField(model.getOrderField());

return models;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值