java 封装的基类Springjdbc可以通用详解编程语言
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相关文章
- 005 Java面向对象知识点 抽象 封装 继承 多态 命名方式 JavaDoc文档 方法的调用 包的作用「建议收藏」
- Java编程基础(1)
- java软件工程师是做什么的_JAVA软件工程师是做什么的?
- java出现中文乱码_JAVA中文显示乱码问题「建议收藏」
- java中static关键字的作用_Java:Java中static关键字作用
- java网页安全提示_win7系统打开网页提示“应用程序已被JAVA安全阻止”的解决方法…
- Java笔记
- java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…
- JAVA外文参考文献_java参考文献近五年
- java 检测 Java 是否运行在64bit 的JVM上详解编程语言
- java 使用java执行命令简易封装类详解编程语言
- 自己封装的Java excel数据读取方法详解编程语言
- 使用java执行命令简易封装类详解编程语言
- java 封装返回json数据详解编程语言
- Java学习笔记之九java二维数组及其多维数组的内存应用拓展延伸详解编程语言
- Java学习笔记之五java数组详解编程语言
- Java问题-java进程占用内存过高,排查原因详解编程语言
- 给新手 Java 开发者的 7 点提示
- Deploying Java on Linux: A Simple Guide for Beginners.(linux上部署java)
- Linux与Java调用C编程实战(linux java调c)
- Java与MySQL共同构建良好的数据表(java mysql 表)
- Linux测试搭配Java快速实现稳定性验证(linux测试java)