`
humlzy
  • 浏览: 21795 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Spring JdbcTemplate 常用方法整理

 
阅读更多

 

import java.util.List;

 

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.dao.EmptyResultDataAccessException;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.stereotype.Repository;

 

@Repository

public class JdbcUtils {

 

protected Logger logger = LoggerFactory.getLogger(getClass());

 

@Autowired

protected JdbcTemplate jdbcTemplate;

 

// 分页sql前缀(适用于oracle)

public static final String PAGE_PREFIX = "select * from(select rownum r, ttt.* from(";

 

// 根据分页参数 组合分页sql后缀

public String getPAGE_SUFFIX(int page, int rows) {

return ") ttt ) where r > " + (page - 1) * rows + " and r <= " + page * rows;

}

 

// 组合后的分页sql

public String getPageSql(int page, int rows, String sql) {

return PAGE_PREFIX + sql + getPAGE_SUFFIX(page, rows);

}

 

// 查询数据条数sql

public String getPageCountSql(String sql) {

return " select count(0) from (" + sql + ")";

}

 

// 查询数据条数(有where参数条件)

public int queryForCount(String sql, Object... args) {

return jdbcTemplate.queryForInt(getPageCountSql(sql), args);

}

 

// 查询数据条数(无where参数条件)

public int queryForCount(String sql) {

return jdbcTemplate.queryForInt(getPageCountSql(sql));

}

 

// 查询List集合(无where参数条件)

public <T> List<T> queryForList(String sql, Class<T> clazz) {

return jdbcTemplate.query(sql, new BeanPropertyRowMapper<T>(clazz));

}

 

// 查询List集合(有where参数条件)

public <T> List<T> queryForList(String sql, Class<T> clazz, Object... args) {

return jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(clazz));

}

 

// 查询List集合并封装,适用于easyui datagrid(无where参数条件)

public <T> JsonBean queryForList(String sql, Class<T> clazz, int page, int rows) {

JsonBean bean = new JsonBean();

int total = this.queryForCount(sql);

List<T> data_list = queryForList(getPageSql(page, rows, sql), clazz);

bean.setTotal(total);

bean.setRows(data_list);

return bean;

}

 

// 查询List集合并封装,适用于easyui datagrid(有where参数条件)

public <T> JsonBean queryForList(String sql, Class<T> clazz, int page, int rows, Object... args) {

JsonBean bean = new JsonBean();

int total = this.queryForCount(sql, args);

List<T> data_list = queryForList(getPageSql(page, rows, sql), clazz, args);

bean.setTotal(total);

bean.setRows(data_list);

return bean;

}

 

// 返回一个JavaBean(无where参数条件)

public <T> T queryForClass(String sql, Class<T> clazz) throws Exception {

List<T> t = queryForList(sql, clazz);

return t == null ? null : t.get(0);

}

 

// 返回一个JavaBean(有where参数条件)

public <T> T queryForClass(String sql, Class<T> clazz, Object... args) throws Exception {

List<T> t = queryForList(sql, clazz, args);

return t.isEmpty() ? null : t.get(0);

}

 

public int queryForInt(String sql, Object... args) {

return jdbcTemplate.queryForInt(sql, args);

}

 

public int queryForInt(String sql) {

return jdbcTemplate.queryForInt(sql);

}

 

public long queryForLong(String sql, Object... args) {

return jdbcTemplate.queryForLong(sql, args);

}

 

public int update(String sql, Object... args) {

return jdbcTemplate.update(sql, args);

}

 

public int delete(String sql) {

return jdbcTemplate.update(sql);

}

 

public <T> T queryForObject(String sql, Class<T> clazz, Object... args) {

try {

return jdbcTemplate.queryForObject(sql, clazz, args);

} catch (EmptyResultDataAccessException e) {

}

return null;

}

}

 

分享到:
评论

相关推荐

    spring 笔记整理

    2. **Spring 的常用包及其作用** - `org.springframework.aop`:提供AOP编程相关的接口和实现。 - `org.springframework.beans`:包含处理JavaBean的类和接口。 - `org.springframework.context`:扩展beans包,...

    Spring2&3速查手册HandBood系列(By FengGe整理)

    本手册主要涵盖了Spring框架的两个主要版本——Spring 2.x和Spring 3.x,由FengGe精心整理,旨在帮助开发者快速查找和理解Spring的核心概念与使用方法。 一、IoC(Inversion of Control)容器 Spring的核心是IoC...

    Spring Boot 学习笔记完整教程.pdf

    2. Spring Boot常用功能: - HelloWorld示例:通过新建Maven Java工程,添加Spring Boot Maven依赖,创建主程序类,通过简单配置来运行一个Web应用。 - 返回JSON数据:Spring Boot可以集成Jackson等JSON转换框架来...

    参照阿里druid个人整理druid-spring-boot-starter可运行demo

    在这个“参照阿里druid个人整理druid-spring-boot-starter可运行demo”中,我们将深入探讨如何将Druid与Spring Boot进行整合,并创建一个可运行的示例。首先,我们需要在项目中引入Druid的依赖。在pom.xml文件中,...

    springboot demo 合集(如何没有积分可以私信)

    Spring Boot干货系列,分享学习中整理的一些笔记和源码 博文对应源码 Spring boot干货系列:(一)优雅的入门篇:chapter1 Spring Boot干货系列:(二)配置文件解析:chapter2 Spring Boot干货系列:(三)启动原理...

    flex3_java 教程

    - **JDBCTemplate**:学习如何使用Spring JDBC模板访问数据库。 - **hsqldb**:介绍hsqldb数据库,一种轻量级的嵌入式数据库。 - **代码示例**:提供具体的数据库访问代码示例。 #### 24. Demo13: Flex访问数据库 -...

Global site tag (gtag.js) - Google Analytics