一、ibatIS调用存储过程(调用存储过程,统一使用StoredProcedure.xml)
1.SaleManagerAction代码:
/**
* 导入单边
* @return
* @author Invalid
* @throws Exception
* @date 2011-11-9 上午09:46:51
*/
public String importUnilateralSaleUpload() throws Exception{
Map<String,Object> result = new HashMap<String,Object>();
String uid = getUserId();
if(StringUtils.isEmpty(uid) || qqfile == null){
result.put("success", false);
result.put("message", "3014");
outPrint(JSON.toJSONString(result));
return null;
}
try{
Workbook workBook = getWorkbook(new FileInputStream(qqfile));
if(workBook!=null){
Sheet sheet = workBook.getSheetAt(0);
Iterator<Row> it = sheet.iterator();
importTotalNum = (sheet.getLastRowNum()+1);
List<Map<String,Object>> importList = new ArrayList<Map<String,Object>>();
Row row = null;
Map<String,Object> temp = null;
String date = null;
try{
while(it.hasNext()){
row = it.next();
temp = new HashMap<String,Object>();
temp.put("employeeId", uid);
temp.put("phone", String.format("%.0f", row.getCell(0).getNumericCellValue()));
temp.put("money", row.getCell(1).getNumericCellValue());
date = row.getCell(2).getStringCellValue();
temp.put("refundDate", DateUtils.parseDate(date, DATEFORMAT));
importList.add(temp);
}
}catch(Exception e){
result.put("message", "3013");
result.put("success", false);
log.error("SaleManagerAction importUnilateralSaleUpload:"+uid+","+qqfile.getName(), e);
outPrint(JSON.toJSONString(result));
return null;
}
List<Map<String,Object>> importErrorList = new ArrayList<Map<String,Object>>();
Map<String,Object> presult = null;
String code = null;
for( Map<String,Object> saleImport : importList )
{
presult = saleManager
.updateSaleUnilateralStateLoad(
(String)saleImport.get("employeeId"),
(String)saleImport.get("phone"),
(Double)saleImport.get("money"),
(Date)saleImport.get("refundDate"));
code = (String) presult.get("p_err_code");
if( "0".equals(code))//退款成功
importSuccess++;
if("-11".equals(code))//退款重复
importRepeat++;
if("-21".equals(code)){//退款失败
importError++;
importErrorList.add(saleImport);
}
}
result.put("importTotalNum", importTotalNum);
result.put("importSuccess", importSuccess);
result.put("importRepeat", importRepeat);
result.put("importError", importError);
result.put("importErrorList", importErrorList);
result.put("success", true);
}else{
result.put("message", "3015");
result.put("success", false);
}
log.info(uid+" Upload UnilateralSale Excel File:"+qqfile.getName()+",State:"+result.get("success"));
}catch(Exception e){
result.put("success", false);
log.error("SaleManagerAction importUnilateralSaleUpload:"+uid+","+qqfile.getName(), e);
}
outPrint(JSON.toJSONString(result));
return null;
}
===============================================================================================================================
2.SaleManagerServiceImpl:
@Override
public Map<String, Object> updateSaleUnilateralStateLoad(String employeeId,
String phone, Double money, Date refundDate) {
Map<String, Object> model = new HashMap<String, Object>();
model.put("p_employee_id", employeeId);
model.put("p_phone", phone);
model.put("p_money", money);
model.put("p_refund_date", refundDate);
phoneSaleDao.updateSaleUnilateralStateLoad(model);
return model;
}
3.PhoneSaleDAOImpl:
@Override
public void updateSaleUnilateralStateLoad(Map<String, Object> model) {
getSqlMapClientTemplate().queryForObject("StoredProcedure.updateSaleUnilateralStateLoad",model);
}
4.StoredProcedure.xml(sqlMap文件):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="StoredProcedure">
<!-- updateSaleUnilateralStateMap 更新业务退款状态 -->
<parameterMap class="map" id="updateSaleUnilateralStateLoadMap">
<parameter property="p_employee_id" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="p_phone" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN" />
<parameter property="p_money" jdbcType="DOUBLE" javaType="java.lang.Double" mode="IN" />
<parameter property="p_refund_date" jdbcType="DATE" javaType="java.util.Date" mode="IN" />
<parameter property="p_err_code" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
<parameter property="p_err_info" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT" />
</parameterMap>
<procedure id="updateSaleUnilateralStateLoad" parameterMap="updateSaleUnilateralStateLoadMap">
{CALL SP_PHONE_REFUND_LOAD(?,?,?,?,?,?)}
</procedure>
</sqlMap>
分享到:
相关推荐
在Java开发中,iBATIS(现在被称为MyBatis)是一个流行的数据持久层框架,它允许开发者将SQL语句直接嵌入到Java代码中,从而简化数据库操作。...希望这个示例能帮助你更好地理解iBATIS调用存储过程的方法。
首先,理解iBATIS调用存储过程的基本原理。iBATIS允许开发者在映射文件中定义存储过程调用,通过`<procedure>`标签来实现。在这个例子中,我们看到一个名为`P_DJ_GETRYANDPYRBYRYID`的存储过程被调用,它接受三个...
根据提供的文件信息,标题为“ibatis调用存储过程”,主要关注的是如何使用ibatis框架来调用数据库中的存储过程。下面将详细解释ibatis框架的基本概念、存储过程的概念以及如何在ibatis中配置和执行存储过程。 ### ...
本文将详细介绍如何使用iBATIS调用存储过程,并提供一个简单的示例来说明其过程。 首先,我们需要在数据库中创建一个存储过程。以下是一个Oracle数据库中的存储过程示例: ```sql CREATE OR REPLACE PROCEDURE pp ...
iBatis调用存储过程
### Ibatis调用存储过程详解 #### 一、引言 在实际的软件开发过程中,存储过程因其执行效率高及数据库级别的安全性等优点被广泛应用于各种业务场景之中。而对于使用Ibatis作为持久层框架的应用来说,如何有效地...
ibatis调用oracle存储过程分页
本文将深入探讨如何使用iBatis调用存储过程并返回游标,这是一个在处理复杂数据库操作时常见的需求。 ### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以...
最后,在Java代码中,通过ibatis的Session对象调用存储过程,传入必要的参数,处理返回的结果集。 ```java SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources....
#### 使用Ibatis调用存储过程 Ibatis是一个Java持久层框架,它能够简化Java应用程序与数据库之间的交互。为了调用上述存储过程并正确处理返回值,我们需要进行以下配置: ##### 日志配置(log4j.properties) ```...
在实际项目中,使用Ibatis调用存储过程时,还应注意以下几点: 1. 不同的数据库系统可能有不同的存储过程调用语法,如Oracle、MySQL、SQL Server等,需要根据具体数据库进行调整。 2. 存储过程中的输出参数在Java...
"IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...
学习这两份文档,开发者不仅可以理解iBATIS的基本工作原理,还能掌握如何高效地利用iBATIS调用存储过程,提高数据库操作的灵活性和性能。对于Java开发者,尤其是从事Web应用开发的人员,深入理解和熟练运用iBATIS是...
调用存储过程: ```java Map, Object> params = new HashMap(); params.put("id", id); sqlSession.execute("updateEmployeeStatus", params); String status = (String) params.get("status"); ``` 5. **...
在这个项目中,我们结合了Spring框架、Ibatis持久层框架以及Blazeds技术,来演示如何调用存储过程并处理返回的结果集。下面将详细讲解这些技术的运用。 首先,J2EE是一种广泛用于开发分布式企业应用的平台,它提供...
本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...
2. **iBatis调用存储过程**: iBatis允许开发者直接调用数据库的存储过程。在XML映射文件中,使用`<procedure>`标签来定义存储过程的调用,指定存储过程的名称和参数。存储过程的输入和输出参数通过`<parameterMap>...
在IT行业中,数据库操作是不可或缺的一部分,而IBatis作为一款流行的数据映射框架,提供了一种灵活的方式来处理SQL语句,包括调用存储过程。存储过程是数据库中预编译的SQL语句集合,可以提高性能、增强安全性,并...