JdbcTemplate中的封装了很多实用的方法。
首先来介绍一下用JdbcTemplate来查询数据的方法。
1.返回指定对象类型的List (query方法)
看代码:
- public List getProductModle(String value) throws DataAccessException {
- List resultList = new ArrayList();
- List args = new ArrayList();
- String sql = "select F_CPUT_MOD_ID as id ,F_CPUT_MOD_NAME as name from CPUT_MOD_T"+
- " WHERE F_MARKET_LOCA_ID = ? order by F_CPUT_MOD_ID";
- if(StringUtils.isNotEmpty(value)){
- args.add(value);
- }
- resultList = this.getJdbcTemplate().query(sql,args.toArray(),
- new ProductModleRowMapper());
- return resultList;
- }
- /**
- * @author rockjava
- * @description 封装产品型号结果集
- */
- private class ProductModleRowMapper implements RowMapper{
- public Object mapRow(final ResultSet rs, final int rowNum) throws SQLException {
- ProductModleVO vo = new ProductModleVO();
- vo.setProModleId((String)rs.getString("id"));
- vo.setProModleName((String)rs.getString("name"));
- return vo;
- }
- }
这里实现了RowMapper类的mapRow方法,用来把查询到的结果集用指定的类来封装,最后返回一个List,List中装着
我们自定的值对象。
2.返回指定类型的结果 (queryForObject方法)
- public String getCurrentPhase(String arg) throws DataAccessException {
- String currentPhase = "";
- String sql="select F_CURR_YEAR from COMPETITION_BASE_T where F_COMPETITION_ID=?";
- Object[] o ={arg};
- try {
- currentPhase = (String)this.getJdbcTemplate().queryForObject(sql,o, String.class);
- } catch (Exception e) {
- currentPhase = "";
- e.printStackTrace();
- }
- return currentPhase;
- }
在这个例子中,用到了queryForObject这个方法,其中第一个参数是要执行的sql,第二个参数是Object数组类型(其中装的是sql脚本用到
的参数),第三个参数就是要制定返回结果的类型(这里我定义的是String类型)
3.查询结果返回Int类型 (queryForInt方法)
- public boolean doCheckCompete(Map args) throws DataAccessException {
- ....省略代码
- /**sql脚本用到的参数集合*/
- Object[] args = new Object[]{
- companyId,
- competitionId,
- marketType,
- martID,
- currentPhase
- };
- StringBuffer sql = new StringBuffer();
- sql.append("SELECT COUNT ( * ) ");
- sql.append("FROM BEFOR_ORDER_T t ");
- sql.append("WHERE T.F_COMPANY_ID = ? ");
- sql.append(" and T.F_COMPETITION_ID=? ");
- sql.append(" and T.F_MARKET_LOCA_ID=? ");
- sql.append(" and T.F_MARKET_SCOPE_ID=? ");
- sql.append(" and T.F_CURRENT_PHASE = ? ");
- int i=0;
- i = this.getJdbcTemplate().queryForInt(sql.toString(), args);
- if(i>0){
- return true;
- }
- return false;
- }
这里用的是queryForInt方法返回int类型。
4.查询结果返回Map类型 (queryForMap方法)
- String sql = "select T.F_COMPETE_ORDER_STATE ,T.F_GENERATED_ORDERS " +
- "from COMPETITION_BASE_T t " +
- "where T.F_COMPETITION_ID = ?";
- Map state = (Map)this.getJdbcTemplate().queryForMap(sql,new Object[]{args});
- String compete_order_state = state.get("F_COMPETE_ORDER_STATE").toString();
- String generated_orders = state.get("F_GENERATED_ORDERS").toString();
返回后的map中的键值对应的是select语句中的字段名字。
5.查询结果集直接返回list (queryForList方法)
- List list = new ArrayList();
- String sql="select T.F_OFF_PERIOD,T.F_PROBABILITY from ORDER_OFF_PERIOD_T t "+
- "where T.F_COMPETITION_ID=?";
- Object[] args ={arg};
- try {
- list = this.getJdbcTemplate().queryForList(sql, args);
- } catch (Exception e) {
- e.printStackTrace();
- }
- ...代码省略
- String a = (String)(((Map) list.get(0)).get("F_PROBABILITY"));
- String b = (String)(((Map) list.get(1)).get("F_PROBABILITY"));
- String c = (String)(((Map) list.get(2)).get("F_PROBABILITY"));
返回的List中装载的是Map对象,没个map对象中的键值对应sql脚本的字段名字。
相关推荐
JdbcTemplate jdTemplate =(JdbcTemplate) applicationContext.getBean("jdbcTemplate"); jdTemplate.execute("create table account(" id int primary key auto_increment," + "username varchar(50)," + "balance...
1.针对SpringMVC注解的配置...2.Spring+JdbcTemplate事物管理 3.Spring+Hibernate事物管理 4.Spring实现DWR注解方式的应用配置 5.Spring配置拦截器 6.Spring通过拦截器实现防止重复提交实例 对学习,会起到非常好的效果
全书分3篇共21章,具体内容包括:Spring环境的安装与使用、JSP与JSTL简介、 Spring基础概念与工具、用SpringJdbcTemplate访问数据库、使用Mayen工程、Spring MVC编程、基于 MVC的资源共享网站设计、Spring的AOP编程...
接口JdbcOperations 抽象类JdbcAccessor 核心类 JdbcTemplate extends implements JdbcTemplate类的继承结构具体如下图所示: Spring JdbcTemplate的解析 从JdbcTemplate的继承关系图可以看出,JdbcTemplate类的...
前期项目 Spring+Spring MVC+JDBC Template 增删改查,包含建库,前端加后台
2019年最新最详细的...提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架
│ 02 案例驱动:如何剖析一个 Spring Web 应用程序?.mp4 │ 03 多维配置:如何使用 Spring Boot 中的配置体系?.mp4 │ 05 自动配置:如何正确理解 Spring Boot 自动配置实现原理?.mp4 │ 06 基础规范:如何...
使用maven构建项目,spring mvc,spring,分别与jdbctemplate,hibernate,mybatis全注解整合,其中包括包含有spring动态代理,数据库的事务处理。以及动态数据源的切换! 最新新增了ehcache缓存的应用
博客论坛系统(molihub)是一个基于 Spring、SpringMVC、JDBCTemplate、JSP 开发的 Java Web 项目。项目页面美观大气,完成度较高,前后端不分离的单体架构,非常适合刚刚接触学习 Spring 的技术小白学习,也非常...
Java持久性框架比较该项目比较了Java的非JPA SQL映射(持久性)框架...”部分) 考虑到这一条件,对以下框架进行了比较: Spring JDBCTemplate (请参阅) jOOQ (请参阅) MyBatis (请参阅和) EBean (请参阅) J
有很多新手不会分离spring的包而应用到c\s开发中,还在用jdbc来管理事务等繁琐的数据管理。 吾将spring2.5的包分离出来欲给一些人以方便。只需下载该包添加到项目中引用即可,如果单独用spring管理事务,记住用...
本项目是基于Spring MVC和JdbcTemplate开发的简易设备资产管理系统设计源码,主要使用Java进行开发。项目共包含147个文件,其中XML配置文件86个,Java源代码文件46个,META-INF文件4个,项目构建文件iml和properties...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...
2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)...
这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,...
spring-jdbctemplate-example 这是一个Spring Monolith应用程序示例,该示例使用jdbcTemplate连接MySQL数据库并执行反馈操作的操作。测试和构建运行测试(也运行大型测试) ./gradlew clean test 有条件地根据测试...
Spring Boot实战与原理分析视频课程包含14-18,本视频教程为网络整理,如有侵权,请联系删除。谢谢 Spring Boot实战与原理分析视频课程 ...27 Spring Boot 应用的打包和部署35:41 --两种方式演示服务的打包,部署,运行
SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物。本文重点给大家介绍spring boot 使用JdbcTemplate访问数据库,需要的朋友可以参考下
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...