`

Spring JdbcTemplate 应用(一)

阅读更多

转自:http://rockjava.iteye.com/blog/299928

 

JdbcTemplate中的封装了很多实用的方法。

首先来介绍一下用JdbcTemplate来查询数据的方法。 

 

1.返回指定对象类型的List (query方法) 

 

看代码:

 

Java代码   收藏代码
  1. public List getProductModle(String value) throws DataAccessException {  
  2.         List resultList = new ArrayList();  
  3.         List args = new ArrayList();  
  4.         String sql = "select F_CPUT_MOD_ID as id ,F_CPUT_MOD_NAME as name from CPUT_MOD_T"+  
  5.             " WHERE F_MARKET_LOCA_ID = ?  order by F_CPUT_MOD_ID";  
  6.         if(StringUtils.isNotEmpty(value)){  
  7.             args.add(value);  
  8.         }  
  9.         resultList = this.getJdbcTemplate().query(sql,args.toArray(),  
  10.                                             new ProductModleRowMapper());  
  11.         return resultList;  
  12.     }  
  13.     /** 
  14.      * @author rockjava 
  15.      * @description 封装产品型号结果集 
  16.      */  
  17.     private   class  ProductModleRowMapper  implements  RowMapper{  
  18.   
  19.         public Object mapRow(final ResultSet rs, final int rowNum) throws SQLException {  
  20.             ProductModleVO vo = new ProductModleVO();  
  21.             vo.setProModleId((String)rs.getString("id"));  
  22.             vo.setProModleName((String)rs.getString("name"));  
  23.             return vo;  
  24.         }  
  25.           
  26.     }  

 

 

 

 

这里实现了RowMapper类的mapRow方法,用来把查询到的结果集用指定的类来封装,最后返回一个List,List中装着 

我们自定的值对象。 


2.返回指定类型的结果 (queryForObject方法)

 

Java代码   收藏代码
  1. public String getCurrentPhase(String arg) throws DataAccessException {  
  2.         String currentPhase = "";  
  3.         String sql="select F_CURR_YEAR from COMPETITION_BASE_T where F_COMPETITION_ID=?";  
  4.         Object[] o ={arg};   
  5.         try {  
  6.             currentPhase = (String)this.getJdbcTemplate().queryForObject(sql,o, String.class);  
  7.         } catch (Exception e) {  
  8.             currentPhase = "";  
  9.             e.printStackTrace();  
  10.         }  
  11.           
  12.         return currentPhase;  
  13.     }  

 

在这个例子中,用到了queryForObject这个方法,其中第一个参数是要执行的sql,第二个参数是Object数组类型(其中装的是sql脚本用到 

的参数),第三个参数就是要制定返回结果的类型(这里我定义的是String类型) 

 


3.查询结果返回Int类型 (queryForInt方法)

 

Java代码   收藏代码
  1. public boolean doCheckCompete(Map args) throws DataAccessException {  
  2.         ....省略代码  
  3.           
  4.         /**sql脚本用到的参数集合*/  
  5.         Object[] args = new Object[]{  
  6.                 companyId,          
  7.                 competitionId,      
  8.                 marketType,         
  9.                 martID,             
  10.                 currentPhase        
  11.         };  
  12.         StringBuffer sql = new StringBuffer();  
  13.         sql.append("SELECT   COUNT ( * ) ");  
  14.         sql.append("FROM   BEFOR_ORDER_T t ");  
  15.         sql.append("WHERE   T.F_COMPANY_ID = ? ");  
  16.         sql.append(" and T.F_COMPETITION_ID=? ");  
  17.         sql.append(" and T.F_MARKET_LOCA_ID=? ");  
  18.         sql.append(" and T.F_MARKET_SCOPE_ID=? ");  
  19.         sql.append(" and T.F_CURRENT_PHASE = ? ");  
  20.         int i=0;  
  21.         i = this.getJdbcTemplate().queryForInt(sql.toString(), args);  
  22.         if(i>0){  
  23.             return true;  
  24.         }  
  25.         return false;  
  26.     }  

 
这里用的是queryForInt方法返回int类型。

 

4.查询结果返回Map类型 (queryForMap方法)

 

Java代码   收藏代码
  1. String sql = "select T.F_COMPETE_ORDER_STATE ,T.F_GENERATED_ORDERS " +  
  2.         "from COMPETITION_BASE_T t " +  
  3.         "where T.F_COMPETITION_ID = ?";  
  4.   
  5. Map state = (Map)this.getJdbcTemplate().queryForMap(sql,new Object[]{args});  
  6.   
  7. String compete_order_state = state.get("F_COMPETE_ORDER_STATE").toString();  
  8.   
  9. String generated_orders = state.get("F_GENERATED_ORDERS").toString();  

 

 

返回后的map中的键值对应的是select语句中的字段名字。 



5.查询结果集直接返回list (queryForList方法)

 

Java代码   收藏代码
  1. List list = new ArrayList();  
  2. String sql="select T.F_OFF_PERIOD,T.F_PROBABILITY from ORDER_OFF_PERIOD_T t "+  
  3.     "where T.F_COMPETITION_ID=?";  
  4. Object[] args ={arg};   
  5. try {  
  6.     list = this.getJdbcTemplate().queryForList(sql, args);  
  7. catch (Exception e) {  
  8.     e.printStackTrace();  
  9. }  
  10. ...代码省略  
  11.   
  12. String a = (String)(((Map) list.get(0)).get("F_PROBABILITY"));  
  13. String b = (String)(((Map) list.get(1)).get("F_PROBABILITY"));  
  14. String c = (String)(((Map) list.get(2)).get("F_PROBABILITY"));  


 返回的List中装载的是Map对象,没个map对象中的键值对应sql脚本的字段名字。

分享到:
评论

相关推荐

    基于注解的Spring JdbcTemplate

    Spring JDBC模絫提供了一种简洁的方式来处理数据库操作,而`Spring JdbcTemplate`是这个模絫的核心组件。本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. ...

    spring-jdbcTemplate实例工程

    - **配置JdbcTemplate**:首先,需要在Spring配置文件中声明一个JdbcTemplate bean,并注入DataSource。 - **执行SQL**:调用JdbcTemplate的execute()方法执行SQL,对于查询操作,可以使用query()方法,传入SQL、...

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

    Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...

    Spring JdbcTemplate

    **Spring JdbcTemplate**是Spring框架中的一个核心组件,主要用于简化Java数据库访问。它提供了一种模板化的方式来执行SQL语句,使得开发人员可以避免编写大量的重复代码,专注于业务逻辑,而不是底层的数据库交互...

    Spring JDBCTemplate连接池jar包

    总之,Spring JDBCTemplate结合连接池提供了一个高效且易于使用的数据库访问层,它降低了数据库操作的复杂性,同时也提升了系统的性能。正确配置和使用这些库,可以极大地优化我们的数据库应用程序。

    Spring JdbcTemplate 常用方法整理

    Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具类,它是基于JDBC但又抽象出了一层,避免了直接与数据库驱动API交互,从而提高了代码的可读性和可维护性。本文将深入探讨Spring JdbcTemplate的常用方法...

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

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

    Spring JdbcTemplate例子

    总的来说,Spring JdbcTemplate是一个强大且灵活的工具,适用于需要直接执行SQL的简单应用,或是作为更复杂数据访问策略的基础。它降低了数据库操作的复杂度,让开发者能更加专注于业务逻辑的实现。结合Spring框架的...

    Spring JdbcTemplate查询实例

    在本实例中,我们将深入探讨Spring JdbcTemplate的查询功能及其在实际应用中的使用。 首先,Spring JdbcTemplate通过提供一系列的模板方法,如`queryForList`、`queryForObject`、`execute`等,使得执行SQL查询变得...

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

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

    Spring JdbcTemplate api

    在Spring框架中,`JdbcTemplate`是一个用于简化JDBC编程的工具类,它采用了模板模式来分离数据库访问中的不变和可变部分,提供了一种更加健壮且易于使用的数据访问机制。`JdbcTemplate`负责处理资源的获取、关闭以及...

    Spring JdbcTemplate.batchUpdate 例子

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

    spring的jdbcTemplate小案例

    2. **创建JdbcTemplate Bean**:接下来,我们需要创建一个JdbcTemplate的实例,并将其注入到我们的应用中。这通常在Spring配置文件中完成,通过`@Bean`注解创建一个JdbcTemplate实例,并将DataSource注入其中。 ```...

    Spring 学习 JdbcTemplate,模板模式,回调

    在IT行业中,Spring框架是Java开发中的核心工具之一,它为构建企业级应用提供了全面的解决方案。本主题将深入探讨Spring框架中的JdbcTemplate组件,以及模板模式和回调机制的概念。 **1. Spring JdbcTemplate** ...

    spring jdbcTemplate

    《Spring JdbcTemplate 深入解析与实战应用》 在Java世界中,Spring框架以其强大的功能和灵活性,深受广大开发者的喜爱。其中,Spring JDBC Template是Spring提供的一个用于简化数据库操作的工具,它抽象了JDBC API...

    SSH笔记-Spring JdbcTemplate

    Spring是一个广泛应用的Java企业级应用框架,它提供了多种数据访问工具,而JdbcTemplate就是其中之一,用于简化JDBC(Java Database Connectivity)操作,提高代码的可读性和可维护性。 在Spring4版本中,...

    spring jdbcTemplate 注入到servlet

    在Java Web开发中,Spring框架提供了丰富的工具来简化数据库操作,其中之一就是`Spring JdbcTemplate`。`JdbcTemplate`是Spring对JDBC(Java Database Connectivity)的一层轻量级封装,它使得开发者能够更加方便地...

    spring jdbctemplate实例

    Spring的JdbcTemplate是Spring框架中的一个核心组件,用于简化数据库操作。它提供了一种模板方法模式,抽象出了一些常见的数据库访问任务,使得开发者无需关注低级的JDBC细节,如打开和关闭连接、处理结果集等,从而...

    Spring jdbctemplate + mysql 分页封装

    在IT行业中,数据库操作是应用开发中的重要环节,Spring框架的JdbcTemplate是Java开发者常用的数据库访问工具,它简化了SQL的执行和结果处理。本文将深入探讨如何利用Spring的JdbcTemplate进行MySQL数据库的分页查询...

Global site tag (gtag.js) - Google Analytics