本篇目录:
ibatis调用Sybase存储过程问题
1、存储过程的支持也是必要的,和只需简单的一句:CallableStatement cstmt = con.prepareCall(procedure); 就能对已有存储过程的调用。ibatis这我就不多少了,一样,都有很好的支持。
2、现在我的问题是调用存储过程zhouxiaobotest,mStatement.execute()始终是false;而调用zhouxiaobotest2 mStatement.execute()就是true,能得到结果集。
3、那就是你的存储过程(report_day.report_day_pro)的问题啦,存储过程没有给回其他的返回值呗。。
4、由于存在这二个问题,因此,我建议使用locator的方法来插入、更新或获取LOB的值。
5、使用sybase central来查看。在表名上点右键,选择属性,点“依赖性”按钮,在引用者页面中,下拉列表选择“过程”,就可以看到引用该表的所有存储过程了。
6、我的这个例子就返回了1个结果集。为了使问题表达更加清楚,这些是我简化了的代码,并用此代码进行了调试。并且总结出了问题的规律:先rdr.read(),如果读到了,则后面的ret必然等于0,否则可以拿到返回值。
Ibatis调用Oracle存储过程
} 备注:由于oracle的存储过程有2种写法,一种是FUNCTION函数,一种是procedure。
index by表不能存储在数据库中的type中,故选择嵌套表。ibatis不支持oracle的复合数据类型的返回。(个人理解)替代方案:用返回oracle游标来代替复合数据类型。ibatis能接受oracle游标类型。
编译SqlMapConfigParser.java生成可运行文件SqlMapConfigParser.class(见附件),并将其覆盖添加到ibatis.jar中。
就能对已有存储过程的调用。ibatis这我就不多少了,一样,都有很好的支持。
ibaits调用存储过程事例
1、在ibatis的XML文件中,调用的时候,可以写成 CALL $procName$(?)问号部分就是你存储过程的参数。可以定义ParamterMap来存储这个参数。
2、queryForList返回的是List,queryForObject返回的是Object;to LS:ibatis可以调用存储过程。
3、存储过程的支持也是必要的,和只需简单的一句:CallableStatement cstmt = con.prepareCall(procedure); 就能对已有存储过程的调用。ibatis这我就不多少了,一样,都有很好的支持。
4、ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 2的环境进行操作的。
ibatis调用oracle存储过程返回结果为boolean的问题
1、你通过JDBC这种方式调用存储过程,应该使用 CallableStatement 类, CallableStatement cs=conn.prepareCall(str);补充一句,避免你在执行有错,cs.excuse();这个方法为执行,然后在获取输出参数。
2、问题总结:index by表不能存储在数据库中的type中,故选择嵌套表。ibatis不支持oracle的复合数据类型的返回。(个人理解)替代方案:用返回oracle游标来代替复合数据类型。ibatis能接受oracle游标类型。
3、就是单独的一个返回结果集的select语句。有SQL Server经验的用户会犯此种错误,因为SQL Server中没有这个限制)。其实,这也是PL/SQL语句块的限制。如果需要存储过程返回结果集,那么可以使用游标,也可以使用索引表做返回。
4、注:Oracle 这里的函数,是一个返回游标类型的函数, 不是像 SQL Server 的那种叫 “表值函数” 的东西。因此下面的写法会报错。
到此,以上就是小编对于调用存储过程对象的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。