`
humlzy
  • 浏览: 21418 次
  • 性别: 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 JdbcTemplate

    基于注解的Spring JdbcTemplate进一步增强了这种便利性,允许开发者直接在方法上使用注解来指定SQL语句。 ### 2. 注解使用 Spring JdbcTemplate的注解支持主要包含以下几个关键注解: - `@Query`: 用于定义SQL...

    spring-jdbcTemplate实例工程

    1. **JdbcTemplate对象**:这是Spring JdbcTemplate的核心,它包含了执行SQL语句的所有方法,如update()用于更新,query()用于查询,insert()用于插入等。 2. **参数绑定**:JdbcTemplate支持多种方式的参数绑定,...

    spring JdbcTemplate query方法使用示例

    spring JdbcTemplate query方法使用示例,欢迎下载借鉴

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate是一个模板类,它提供了大量的方法来执行SQL查询、更新、存储过程等操作。这些方法会自动处理JDBC相关的资源关闭、异常转换等细节,使得代码更加整洁和健壮。 2. **数据库自适应** Spring...

    Spring JdbcTemplate

    在提供的文件列表中,`BaseDao.java`和`BaseDaoImpl.java`很可能是自定义的基类和实现类,用于封装JdbcTemplate的常用操作。BaseDao通常会定义一些基本的CRUD(创建、读取、更新、删除)方法,如`selectById(int id)...

    Spring JDBCTemplate连接池jar包

    4. 使用JdbcTemplate方法:调用JdbcTemplate的相应方法,如`update()`, `query()`, `execute()`等,传入SQL和参数。 5. 处理结果:根据操作类型,处理返回的结果集或者受影响的行数。 6. 事务管理:如果需要,可以...

    基于java的企业级应用开发:Spring JdbcTemplate 的常用方法.ppt

    在本教程中,我们将深入探讨Spring JdbcTemplate的常用方法,并介绍如何结合JUnit进行单元测试。 首先,`execute()`方法是JdbcTemplate的一个关键功能,它允许执行任意的SQL语句,包括DDL(数据定义语言)如创建表...

    Druid数据库连接池的SpringJDBCTemplate所需的jar包

    Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,...

    strut2+spring+springjdbctemplate做的简易登录系统

    Struts2、Spring和Spring JDBC Template是Java Web开发中常用的三个框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理前端请求和业务逻辑;Spring则是一个全面的后端框架,提供...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...

    模仿spring jdbcTemplate的实现

    模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息

    Spring JdbcTemplate例子

    Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...

    Spring JdbcTemplate查询实例

    首先,Spring JdbcTemplate通过提供一系列的模板方法,如`queryForList`、`queryForObject`、`execute`等,使得执行SQL查询变得更加简洁和安全。这些方法能够处理结果集、自动转换数据类型,并且在发生异常时提供更...

    使用Spring JDBCTemplate进行增删改查curd操作

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...

    Spring JdbcTemplate api

    值得注意的是,虽然有文档提到`JdbcTemplate`提供了`execute(String sql, Object[] params)`方法,但实际上在Spring 2.x版本中并不存在这样的方法签名。 #### 批量更新 当需要进行批量更新操作时,`JdbcTemplate`...

    Spring JdbcTemplate.batchUpdate 例子

    在Spring框架中,`JdbcTemplate`是用于简化Java数据库连接(JDBC)操作的一个核心组件。这个类提供了很多方法来执行SQL查询、更新语句,包括批处理操作。本篇文章将详细探讨`batchUpdate`方法及其在实际开发中的应用...

    spring的jdbcTemplate小案例

    JdbcTemplate是Spring JDBC模块的核心,它提供了一组模板方法,用于执行SQL查询、更新、插入和删除操作。通过使用这个模板类,开发者可以避免直接与JDBC API交互,从而减少错误并提高代码的可读性。它还支持事务管理...

    spring jdbcTemplate 源码

    Spring JDBCTemplate是Spring框架中的一个核心组件,它提供了一种简化数据库操作的抽象层,使得开发者可以更加方便、高效地处理数据库事务。本篇将深入探讨Spring JDBCTemplate的使用及其源码解析,帮助你理解其背后...

    Spring jdbcTemplate pom.xml

    1.Spring4前 spring-jdbc包是独立的,4以后spring-jdbc 就已经没有了

Global site tag (gtag.js) - Google Analytics