Spring 框架 执行SQL getJdbcTemplate().query update 用法
转自:http://hi.baidu.com/storex/blog/item/666b8f3889d7c92f97ddd89d.html Spring 框架 执行SQL getJdbcTemplate().query update 用法 2010-04-14 13:56
第二部分:转自:http://peirenlei.javaeye.com/blog/353170 Spring JdbcTemplate 应用 JdbcTemplate中的封装了很多实用的方法。 Java代码 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中装着 Java代码 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脚本用到 Java代码 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类型。 Java代码 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语句中的字段名字。 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 的一些常用的查询方法,在这篇里将介绍用JdbcTemplate做更新数据操作 和调用存储过程。 1. JdbcTemplate 更新数据 Java代码 public boolean switchStartOrderMeeting(String argument, String flag) throws DataAccessException { boolean result = false; String sql = sql = "update COMPETITION_BASE_T t set T.F_COMPETE_ORDER_STATE = '0'"+ " where T.F_COMPETITION_ID = ?"; int i = 0; //返回所影响的行数 i = this.getJdbcTemplate().update(sql, new Object[] { argument }); if (i > 0) { result = true; } return result; } 这个方法很简单,update方法只要传入sql脚本和脚本参数(Object数组类型)。 2. JdbcTemplate 调用存储过程 /**代码片段*/ //5个输入参数,3个输出参数 String sql = "{call GENERATEORDERS_P(?,?,?,?,?,?,?,?)}"; final String company_id = result.get("F_COMPANY_ID").toString(); // 公司ID final String competition_id = result.get("F_COMPETITION_ID").toString(); // 比赛ID final String current_phase = result.get("F_CURRENT_PHASE").toString(); // 当前周期 final String market_scope_id = result.get("F_MARKET_SCOPE_ID").toString(); // 市场ID final String market_loca_id = result.get("F_MARKET_LOCA_ID").toString(); // 产品类型ID Map mapR = (Map) getJdbcTemplate().execute(sql,new CallableStatementCallback() { public Object doInCallableStatement(CallableStatement cs)throws SQLException,DataAccessException { cs.setString(1, current_phase); // 输入参数 cs.setString(2, competition_id); // 输入参数 cs.setString(3, market_scope_id); // 输入参数 cs.setString(4, market_loca_id); // 输入参数 cs.setString(5, company_id); // 输入参数 cs.registerOutParameter(6,Types.VARCHAR);//输出参数 cs.registerOutParameter(7,Types.VARCHAR);//输出参数 cs.registerOutParameter(8,Types.VARCHAR);//输出参数 cs.execute(); Map map = new HashMap(); map.put("RESULT", cs.getString(6)); // 订单数量 map.put("F_PRICE", cs.getString(7)); // 订单价格 map.put("F_CPUT_MOD_ID", cs.getString(8));// 产品型号ID return map; } }); execute方法返回的是一个Object对象,在这里我封装了一个Map对象返回。 |
转载于:https://blog.51cto.com/cyxinda/1226068
Spring 框架 执行SQL getJdbcTemplate().query update 用法相关推荐
- laravel 输出最后执行sql 附:whereIn用法
在sql语句执行前 DB::enableQueryLog(); sql sql sql sql sql dd(DB::getQueryLog()); DB::enableQueryLog(); $da ...
- SQL中的 update用法+示例
update用于更新表中内容 语法: 1.修改单表 update 表名 set 列名 = 新值,..... where 筛选条件: 2.修改多表 update 表1 inner|left|right ...
- MySQL数据库事务、mybatis框架、spring框架、springmvc框架、永和大王门店管理系统(框架第二部分)
第十二章 MySQL数据库事务 一. 事务及四大特性 1.什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行 ...
- Spring框架学习day_03:对于读取文件方式的补充/关于spring框架知识点的学习方式
1. 通过Environment读取.properties配置文件 假设在src/main/resources下存在jdbc.properties文件,并且,在该文件中存在若干条配置信息,如果需要读取 ...
- .Net执行SQL/存储过程之易用轻量工具
支持.Net/.Net Core/.Net Framework,可以部署在Docker, Windows, Linux, Mac. 由于该工具近来被广东省数个公司2B项目采用,且表现稳定,得到良好验证 ...
- cmd执行服务器sql文件命令行,Dos命令提示符下 - 用sqlcmd执行*.sql语句
Dos命令提示符下 - 用sqlcmd执行*.sql语句 1)在Dos命令下执行sqlcmd命令(当然事先需要将sqlcmd增加到环境变量中去), 2)下面白色部分替换为服务器名或计算机名即可 sql ...
- Spring框架 JdbcTemplate类 @Junit单元测试,可以让方法独立执行 如:@Test
1 package cn.zmh.PingCe; 2 3 import org.junit.Test; 4 import org.springframework.jdbc.core.BeanPrope ...
- 在Spring框架中使用SQL存储过程
Spring框架也支持对SQL存储过程的调用,SQL存储过程是一组预先定义好的SQL语句,并存储到数据库管理系统中,外部程序可以直接调用执行.本课主要讨论在Spring框架中应用程序如何调用MySQL ...
- php 获取最后执行的sql,如何获取ThinkPHP框架最后一次执行SQL语句及变量调试
这篇文章主要介绍了ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作,结合实例形式分析了thinkPHP获取最后一次执行SQL语句的getLastSql()及fetchSql()函数以及 ...
- mysql query语句_使用mysql_query()函数执行SQL语句
mysql_query()函数 PHP MySQL 函数库中,mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句. 对于没有数据返回结果集的 SQL ,如 UPDATE.DE ...
最新文章
- Android Stadio 所有的窗口都没有了
- 牛客网 牛客练习赛13 A.幸运数字Ⅰ
- Excel催化剂插件功能修复与更新汇总篇之十
- 四色原型图进行业务建模的思考
- 网页与 alert() 一样用于弹框却比之多了一个取消选项的方法 confirm()
- springboot运行在eclipse报异常的问题
- python3.6网络爬虫_python3.6网络爬虫
- frame页面跳转和信息提示页面
- Theine for Mac(电脑休眠工具)
- MemTest和Memtest86+使用教程
- 2021美团笔试题(第十套)个人解答
- 虚拟机怎样使用代理服务器上网,VMware虚拟机使用NAT模式上网的方法
- MGV2000_CW、JL、JZ、KA/KX、CNTV,零配置_S905L-B_全套固件(可救砖)
- 正确使用RecyclerView分割线
- 山寨机java游戏下载_Q版水浒-山寨英雄
- 织梦后台登录出现500错误解决方案
- 运动世界校园破解刷跑步数据
- 使用Python批量将PDF转换成图片
- F 分布的定义和概率密度函数
- php初学者,php技术支持,php学习网站
热门文章
- 绝地求生服务器维护6.28,绝地求生6月28号更新完怎么进不去 绝地求生更新维护到几点6.28...
- FRR BGP协议分析12 -- ZEBRA路由的处理1
- Linux内核的netpoll框架与netconsole
- Uboot系统初始化为何要初始化堆栈?为何C语言的函数调用要用到堆栈,而汇编却不需要初始化堆栈?
- 深入解读Linux进程调度系列——数据结构解析
- 常用头文件和一些简单的函数
- Rotate Array
- 哈夫曼树的生成详解(C++)
- CodeforcesRound#498 (Div.3)E题Military Problem
- linux vim 手册,Vim 参考手册