<parameterMap type="java.util.Map" id="InsertBillMap">
<parameter property="P_StoreID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_FormTypeID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_RelatedFID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_RequestFID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_ContractNumber" jdbcType="VARCHAR" javaType="String" mode="IN" />
<parameter property="P_ClientID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_WarehouseID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_WarehouseID2" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_CreatorID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_SalesID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_NoTaxSum" jdbcType="DOUBLE" javaType="double" mode="IN" />
<parameter property="P_TaxSum" jdbcType="DOUBLE" javaType="double" mode="IN" />
<parameter property="P_NoTaxPaidSum" jdbcType="DOUBLE" javaType="double" mode="IN" />
<parameter property="P_TaxPaidSum" jdbcType="DOUBLE" javaType="double" mode="IN" />
<parameter property="P_PayMethod" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_PayValue" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_FirstPayDate" jdbcType="DATE" javaType="String" mode="IN" />
<parameter property="P_Status" jdbcType="INTEGER" javaType="Integer" mode="IN" />
<parameter property="P_Status2" jdbcType="INTEGER" javaType="Integer" mode="IN" />
<parameter property="P_Notes" jdbcType="VARCHAR" javaType="String" mode="IN" />
<parameter property="P_Notes2" jdbcType="VARCHAR" javaType="String" mode="IN" />
<parameter property="P_Notes3" jdbcType="VARCHAR" javaType="String" mode="IN" />
<parameter property="P_ReviewerID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_SystemDate" jdbcType="DATE" javaType="String" mode="IN" />
<parameter property="P_Invoice" jdbcType="INTEGER" javaType="Integer" mode="IN" />
<parameter property="P_Used" jdbcType="INTEGER" javaType="Integer" mode="IN" />
<parameter property="P_FPayDate" jdbcType="DATE" javaType="String" mode="IN" />
<parameter property="P_bReverse" jdbcType="INTEGER" javaType="Integer" mode="IN" />
<parameter property="P_VipID" jdbcType="BIGINT" javaType="Long" mode="IN" />
<parameter property="P_FID" jdbcType="BIGINT" javaType="Long" mode="INOUT" />
<parameter property="P_FormNumber" jdbcType="BIGINT" javaType="Long" mode="INOUT" />
<parameter property="P_ret" jdbcType="VARCHAR" javaType="String" mode="OUT" />
</parameterMap>
<select id="callzc_proc_sp_InsertBill" parameterMap="InsertBillMap" statementType="CALLABLE">
<![CDATA[
{call zc_proc_sp_InsertBill(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}
]]>
</select>
BEGIN...
IF ISNULL(P_FormNumber) THEN...
SELECT @@aa into P_FormNumber;
ELSE.....
这里一运行代码,问题来了,因为clientID是inout的类型的,in进去是有值的,完全没问题,可以运行,当是空值进去的时候,就报错了!
出现一下报错
### Error querying database. Cause: java.sql.SQLException: Incorrect integer value: 'null' for column 'P_FormNumber' at row 1
### The error may involve zc.saas.store.fee.dao.ZCFeeSaleBillMapper.ReverseBillMapWithoutNumber
### The error occurred while setting parameters
### Cause: java.sql.SQLException: Incorrect integer value: 'null' for column 'P_FormNumber' at row 1
经过几天讨论,感觉是mybatis装配的时候,把null当成“null”,求大神解决啊
问题补充:P_FormNumber是inout的类型的,in进去是有值的,完全没问题,可以运行,当是空值进去的时候,就报错了!
相关推荐
本篇将详细阐述如何使用MyBatis调用MySQL中的存储过程,帮助你深入理解这一核心技能。 首先,我们需要了解存储过程的基本概念。存储过程是预编译的SQL语句集合,它封装了多个操作,可以在数据库服务器上执行,提高...
本文将详细介绍如何使用MyBatis调用MySQL存储过程,以及存储过程的相关概念、优缺点和基本语法。 首先,存储过程是数据库中预编译的一组SQL语句,它可以包含控制流语句,以实现更复杂的业务逻辑。存储过程的创建和...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
本篇主要介绍如何在MyBatis中调用MySQL的存储过程,包括如何接收返回参数、单个结果集以及多个结果集。 首先,我们创建了一个名为`demo`的表,用于存储测试数据。然后定义了一个存储过程`pro`,它接受一个输入参数`...
这个存储过程接收一个输入参数 `age`,并输出一个名为 `user_count` 的计数结果,表示满足特定年龄条件的用户数量。 在 Mybatis 中调用存储过程主要涉及以下步骤: 1. **配置映射文件**:在 `userMapper.xml` 文件...
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan ...
### MyBatis 概述 #### 1.1 什么是 MyBatis? ...MyBatis 的强大之处在于它不仅提供了高效的数据库访问能力,还极大地简化了开发过程中的复杂度,使得开发人员能够更专注于业务逻辑的设计与实现。
在Java代码中,你可以创建一个Map对象,将参数放入其中,然后调用Mapper的方法来执行存储过程。 分页查询通常需要配合数据库的分页功能。在MySQL中,可以使用`LIMIT`和`OFFSET`关键字来实现。在Ibatis中,可以通过...
在本文中,我们将探讨如何使用Java和MyBatis框架搭建一个简单的应用,主要采用XML配置方式。MyBatis是一个轻量级的持久层框架,它将SQL与Java代码分离,提高了开发效率。以下是一个逐步搭建的过程: 1. **创建Maven...
`backupDatabase`方法负责执行实际的数据库备份操作,它会根据当前时间生成备份文件名,并调用`Runtime.getRuntime().exec()`来执行mysqldump命令,将MySQL数据库的数据导出为SQL文件。 需要注意的是,这个示例假设...
6. **CallableStatement**:用于调用存储过程,它可以处理带有IN、OUT或IN/OUT参数的存储过程。 在使用JDBC进行数据库编程时,通常遵循以下步骤: 1. 加载数据库驱动:使用Class.forName()方法加载对应的JDBC驱动...
- **CallableStatement**:用于执行存储过程,支持IN、OUT、IN/OUT参数。 - **批处理**:通过`addBatch()`和`executeBatch()`方法,可以批量执行多条SQL语句,提高效率。 - **事务管理**:Connection对象提供了...
#### 一、使用Java语言调用数据库 在JavaWeb开发过程中,数据库操作是一项非常重要的任务。以下是如何使用Java语言连接MySQL数据库并进行基本的CRUD(创建(Create)、读取(Retrieve)、更新(Update)、删除(Delete))...
### 知识点详解 ...**解答**: 在 Tomcat 5 中,如果需要处理 URL 中包含的中文参数,可以通过设置 Tomcat 的连接器 (Connector) 来解决编码问题。例如,可以在 `server.xml` 文件中添加如下配置: ```xml ...