Dao代码
@Repository("AlipayDAO")
public class AlipayDAOImpl extends BaseDAOImpl<TAlipay> implements IAlipayDAO {
public AlipayDAOImpl() {
super("TAlipay");
}
public String saveByProcedure(Map<String,Object> alipay) {
getSqlMapClientTemplate().queryForObject(
"TAlipay.sp_alipay_add_auto", alipay);
return alipay.get("ERR_CODE")+"|"+alipay.get("ERR_INFO");
}
}
xml
<?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" >
<parameterMap class="map" id="alipay">
<parameter property="notifyTime" jdbcType="TIME" javaType="java.util.Date" mode="IN"/>
<parameter property="tradeNo" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="outTradeNo" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="totalFee" jdbcType="DOUBLE" javaType="java.lang.Double" mode="IN"/>
<parameter property="gmtCreate" jdbcType="TIME" javaType="java.util.Date" mode="IN"/>
<parameter property="gmtPayment" jdbcType="TIME" javaType="java.util.Date" mode="IN"/>
<parameter property="extraCommonParam" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="buyerId" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="buyerEmail" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="ERR_CODE" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
<parameter property="ERR_INFO" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>
</parameterMap>
out的property要和存储过程中定义的一样且大写,
The jdbcType attribute can be set to any string value that matches a constant in the
JDBC Types class.
jdbcType应该是java.sql.Types中的字段名
Java only has one Date value type
(java.util.Date), but most SQL databases usually have at least three different
types. Because of this you might want to specify explicitly that your column type is
DATE versus DATETIME.
分享到:
相关推荐
总结,ibatIS调用存储过程涉及了框架配置、Mapper接口设计、XML映射文件编写、Java代码实现等多个方面,理解这些知识点对于在实际项目中灵活运用ibatIS调用存储过程至关重要。通过熟练掌握这些技能,开发者可以更...
需要注意的是,虽然这里使用了`selectOne`,但实际上存储过程可能返回多个结果集或者无结果,这时可以使用`sqlSession.callableStatement()`方法,然后调用`CallableStatement`的相关方法来处理。 在实际项目中,...
本文将深入探讨如何使用Ibatis框架来调用Oracle数据库中的存储过程,并实现返回自定义类型的处理方法。 #### Oracle自定义类型简介 Oracle支持用户自定义数据类型,这为复杂数据结构的应用提供了极大的便利。...
在这个项目中,我们结合了Spring框架、Ibatis持久层框架以及Blazeds技术,来演示如何调用存储过程并处理返回的结果集。下面将详细讲解这些技术的运用。 首先,J2EE是一种广泛用于开发分布式企业应用的平台,它提供...
- 如果存储过程有多个输出参数,可以使用Map来接收。 4. **在代码中调用**: - 使用SqlSession对象的`selectOne`或`execute`方法调用相应的方法。 调用函数: ```java String employeeName = sqlSession....
iBATIS是一款开源的持久层框架,它简化了Java应用程序与数据库之间的交互过程。为了提高开发效率和代码的可读性,iBATIS引入了一系列内置别名,用于简化配置文件中的全限定类名书写。本文将详细介绍iBATIS内置别名...
在iBatis中,当存储过程返回一个游标时,你可以将其映射为一个Java List。为此,你需要在Java方法中声明一个List类型的参数,而在SQL映射文件中,使用`<resultMap>`定义一个结果集映射,然后在`<selectResult>`标签...
在IbatisDemo02中,你会看到一个或多个XML文件,每个文件对应一个存储过程的映射。 4. **定义数据访问接口**: 创建一个接口,定义调用存储过程的方法。这些方法的参数和返回值应该与存储过程的输入参数和输出结果相...
在处理复杂的业务逻辑或需要多次交互的场景下,调用存储过程通常比单独执行多个SQL语句更高效。存储过程还可以接受输入参数,返回输出参数,甚至有中间结果集,这使得它们在数据操作上非常灵活。 在本项目中,...
2. **一对多映射**:在数据库中,一个记录可以对应多个子记录。iBatis 使用 `collection` 元素在 `resultMap` 中配置一对多关系。可以设置 `select` 属性,指定一个 SQL 语句来获取子记录集合。 3. **多对多映射**...
在SQL Maps中,你可以定义SQL查询、存储过程以及它们的参数和返回值。这些映射文件将SQL语句与Java对象直接关联,使得在代码中无需手动拼接SQL,提升了代码的可读性和维护性。 在"iBATIS SQL Maps开发指南"中,你将...
10. 实战案例:书中包含了大量的实战示例,涵盖了CRUD操作、分页查询、存储过程调用、批量更新等常见场景,帮助读者更好地理解和运用iBatis。 通过阅读《iBatis实战》这本书,你将能够熟练掌握iBatis的配置、使用和...
iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句与Java代码分离,从而提高了开发效率和可维护性。SqlMap是iBatis的核心配置文件,用于定义数据库交互的各种操作。以下是关于iBatis_SqlMap配置的一些关键知识...
在 Ibatis 中,我们还需要一个或多个 XML 配置文件,用于定义 SQL 映射和事务管理。 在事务管理方面,Ibatis 提供了一种优雅的方式来处理数据库事务,使得开发者可以专注于业务逻辑,而不是底层的事务控制。液压...
- 多个参数时,需要使用`@Param`注解来明确参数名称。 2. **注解传参**: - 如果传入单个对象,可以在DAO层接口中使用`@Param`注解来指定参数名称。 - `mapper.xml`中通过别名.对象属性的方式取值。 通过以上...
其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...
安装过程中记得勾选"Add Python to PATH",这样可以在命令行直接运行Python。此外,Python的集成开发环境(IDE)如PyCharm、VSCode等也是学习的好帮手。 2. **Python3入门教程**: Python3的基础包括变量、字符串...
MyBatis作为一个成熟且广泛使用的Java持久层框架,通过简化数据库交互、提供灵活的SQL控制和对象映射,帮助开发者更高效地进行数据库操作。无论是企业级应用程序还是中小型项目,MyBatis都能够提供强大的支持和优良...
22、用JDBC如何调用存储过程 109 23、JDBC中的PreparedStatement相比Statement的好处 110 24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决...