zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java 封装的基类Springjdbc可以通用详解编程语言

JAVA封装编程语言 详解 可以 通用 基类
2023-06-13 09:20:28 时间
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 T 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 T returnType, Object... paramValue) { RowMapper T rowMapper = new BeanPropertyRowMapper T (returnType); try{ return this.getJdbcTemplate() .queryForObject(sql, rowMapper, paramValue); }catch(Exception ex){ return null; protected List T getList(String sql, Class T returnType, Object... paramValue) { RowMapper T rowMapper = new BeanPropertyRowMapper T (returnType); return this.getJdbcTemplate().query(sql, rowMapper, paramValue); protected List T getList(String sql, Class T returnType) { RowMapper T rowMapper = new BeanPropertyRowMapper T (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 T 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;

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10402.html

cjava