- 浏览: 191665 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (183)
- struts1 (2)
- android (1)
- 工作总结 (15)
- java (23)
- 信息拓展 (10)
- linux (1)
- html5 (10)
- js基础 (9)
- 系统设计 (2)
- css dhtml (7)
- oracle sqlplus plsql (3)
- div+css (1)
- 面试试题 (1)
- java.ibatis (3)
- 项目开发 (2)
- oracle (10)
- eclipse (1)
- 自强之道 (1)
- velocity (1)
- 常用办公软件EXCEL WORD PPT (1)
- ORA-02298: 无法验证 (PNET.POST_CLOB_FK) - 未找到父项关键字 (1)
- ligerui (1)
- 业务系统 (0)
ibatis 配置调用存储过程,jdbctype配置
- 博客分类:
- java
- java.ibatis
数据库存储过程如下:
procedure p_project_details_stat
(
i_date_start in
varchar2,
i_date_end in varchar2,
i_range_start in
number,
i_range_end in number,
i_org_id in
number,
i_species_id IN VARCHAR2,
i_query_user_id in
number,
o_report_id out number
)
配置调用如下:
<parameterMap id="proMap" class="map">
<parameter
property="complainDateStart" javaType="java.lang.String" mode="IN"
jdbcType="VARCHAR" />
<parameter property="complainDateEnd"
javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
/>
<parameter property="priceOne" javaType="java.math.BigDecimal"
mode="IN" jdbcType="NUMBER" />
<parameter property="priceTwo"
javaType="java.math.BigDecimal" mode="IN" jdbcType="NUMBER"
/>
<parameter property="orgId" javaType="java.math.BigDecimal"
mode="IN" jdbcType="NUMBER" />
<parameter property="speciesIdList"
javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
/>
<parameter property="userId" javaType="java.math.BigDecimal"
mode="IN" jdbcType="NUMBER" />
<parameter property="reportId"
javaType="java.math.BigDecimal" mode="OUT" jdbcType="NUMBER"
/>
</parameterMap>
<procedure id="generateProjectDetial"
parameterMap="proMap">
<![CDATA[
CALL
szzc_stat.p_project_details_stat(?,?,?,?,?,?,?,?)
]]>
</procedure>
老是报:
--- Check the CALL
szzc_stat.p_project_details_stat(?,?,?,?,?,?,?,?).
--- Check the output
parameters (register output parameters failed).
--- Cause:
java.sql.SQLException: 无效的列类型: -99999999
网上查找资料:
后来查看java.sql.Types类中有关JDBC类型变量类型,并没有发“NUMBER”这一静态字段,而只有“NUMERIC”字段。(因此 jdbcType 的值不是数据库ORACLE的参数类型,而是其对应的JDBC变量类型)
但改了之后依然报同样错误。
后来发现在java.sql.Types类中还有一个DECIMAL静态常量,与javaType定义的java.math.BigDecimal类型一致。
再修改测试则通过,不再报错。
所以“无效的列类型”异常解决方法,根据存储过程的参数类型找出正确的jdbcType(具体参考java.sql.Types类的JDBC静态变量)。
地址:http://www.cnblogs.com/leolwang/archive/2010/03/25/1694539.html
正确配置:
<parameterMap id="proMap" class="map">
<parameter
property="complainDateStart" javaType="java.lang.String" mode="IN"
jdbcType="VARCHAR" />
<parameter property="complainDateEnd"
javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
/>
<parameter property="priceOne" javaType="java.math.BigDecimal"
mode="IN" jdbcType="DECIMAL" />
<parameter property="priceTwo"
javaType="java.math.BigDecimal" mode="IN" jdbcType="DECIMAL"
/>
<parameter property="orgId" javaType="java.math.BigDecimal"
mode="IN" jdbcType="DECIMAL" />
<parameter property="speciesIdList"
javaType="java.lang.String" mode="IN" jdbcType="VARCHAR"
/>
<parameter property="userId" javaType="java.math.BigDecimal"
mode="IN" jdbcType="DECIMAL" />
<parameter property="reportId"
javaType="java.math.BigDecimal" mode="OUT" jdbcType="DECIMAL"
/>
</parameterMap>
<procedure id="generateProjectDetial"
parameterMap="proMap">
<![CDATA[
CALL
szzc_stat.p_project_details_stat(?,?,?,?,?,?,?,?)
]]>
</procedure>
jdbcType类型:
数据库类型与JDBC TYPE 和Java类型对应关系
SQL Datatypes |
JDBC Typecodes |
Standard Java Types |
Java取值范围 |
NUMBER |
java.sql.Types.NUMERIC |
java.math.BigDecimal |
无限制 |
NUMBER |
java.sql.Types.DECIMAL |
java.math.BigDecimal |
无限制 |
NUMBER |
java.sql.Types.BIT |
boolean |
true,false |
NUMBER |
java.sql.Types.TINYINT |
byte |
from –128 to 127 |
NUMBER |
java.sql.Types.SMALLINT |
short |
from –32768 to 32767 |
NUMBER |
java.sql.Types.INTEGER |
int |
From –2147483648 to 2147483647 |
NUMBER |
java.sql.Types.BIGINT |
long |
From –9223372036854775808 to 9223372036854775807 |
NUMBER |
java.sql.Types.REAL |
float |
From 1.4E-45 To 3.4028235E38 |
NUMBER |
java.sql.Types.FLOAT |
double |
From 4.9E-324 to 1.7976931348623157E308 |
NUMBER |
java.sql.Types.DOUBLE |
double |
|
发表评论
-
jasperreport不适用子报表实现中国式分组报表功能
2014-08-16 13:40 1330副标题: 单行统计报表中如何通过一列的值决定另一 ... -
优化功能点
2013-11-11 14:25 516今日优化XX反馈响应太慢的功能点: 1.成立采购小组选择用 ... -
开发常见报m(_ _)m
2013-09-11 12:00 693struts1 使用BeanUtils填充界面录入数据报 错 ... -
加载程序时不能正常启动,加载xml报错
2013-09-04 10:39 2118报错日志: Caused by: org.springfr ... -
字符编码优秀文章收集
2013-06-26 10:18 693http://www.ibm.com/devel ... -
数据库存储数据使用字符集与程序的无关
2013-06-21 11:24 7991.开发项目代码使用UTF-8 2.数据储存数据使用GB ... -
文件下载至内存溢出
2013-05-10 09:31 5043同事文章: 部分项目的文件下载处理方式如下: B ... -
ireport 报表中不同行不同的样式
2013-01-13 16:32 1888转载自: http://lzfhope.b ... -
ibatus 调用存储过程返回id值
2012-12-13 20:49 715public Integer generateItem ... -
去掉数组中的重复元素
2012-12-03 15:11 946/** * 返回不包含重复元素的数组 * ... -
解析用户输入的字符串,加入回车换行符
2012-11-10 12:35 2926用户要求界面显示要根据用户的输入格式显示,于是用了< ... -
LazyValidatorForm
2011-12-21 19:29 16921. private Map formObjGenera ... -
eclipse 不编译工程
2011-09-29 09:35 691网摘: eclipse出现不编译工程的现象。怎么刷 ... -
解决客户端页面刷新重复保存数据问题
2011-09-14 21:09 13501.用户点“保存”调用save()方法保存数据。 2.当用户 ... -
java 报表开发
2011-08-20 16:17 798《jasperreport 自定义java ... -
jasperreport自定义JRDataSource
2011-07-29 22:08 5232package com.sniper.report ... -
ibatis中不清楚知识点
2011-06-21 14:58 6601.不清楚问题: <update id=&quo ... -
附件测试
2011-06-17 10:10 593附件测试 -
文件下载
2011-06-01 16:50 644BufferedInputStream bis = ne ... -
使用extremecomponents之妙
2011-06-01 15:25 1274<ec:table items="no ...
相关推荐
ibatis调用oracle存储过程分页
ibatis调用oracle存储过程
Ibatis中调用其它的SQL语句很容易,那么如何在Ibatis中调用存储过程呢?
ibatis调用存储过程使用示例,处理带参数及无参数类型的存储过程,是一个不错的例子。
iBatis调用存储过程
用ibatis调用存储过程的介绍,使用java语言进行开发
IBATIS调用存储过程
ibatis调用存储过程.txt [removed] var share_info = {}; [removed]
NULL 博文链接:https://jun1986.iteye.com/blog/1290064
Ibatis调用Oracle存储过程,返回自定义的类型。
ibatis配置ibatis配置ibatis配置ibatis配置ibatis配置 以及相关资料
ibatis 配置文件详解
ibatis配置文件、映射文件详解.doc
spring ibatis 配置spring ibatis 配置spring ibatis 配置spring ibatis 配置
iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性
常用IBATIS配置,返回新建数据ID,分页查询,查询条件,模糊查询,date时间段,list集合,截止日期
使用J2EE+Spring+Ibatis+JDBC 调用存储过程,并返回结果集的配置详细。 供学习参考。
ibatis用xml配置文件配置的使用,基本包括了ibatis遇到的所有问题
详细的ibatis配置文件,初来乍到,先打个招呼 ...