bboss persistent框架调用存储过程的返回结果为xml串的使用方法
2008-12-16 13:09
956 查看
bboss persistent框架可以将存储过程的out参数返回的值封装成xml格式化串返回给调用程序,本文档介绍这种使用方法.
xml的语法如下:
<?xml version="1.0" encoding="gb2312"?>
<records> --返回记录集的根节点
<record> --具体的记录的起点,存储过程只有一条记录集
<column name="name" type="VARCHAR" javatype="String">--记录中的列信息和值,包括列名,列对应java类型和表字段类型
<![CDATA[hello name]]>--列的值
</column>
<column name="name1" type="VARCHAR" javatype="String">
<![CDATA[hello name1]]>
</column>
<column name="test" type="INTEGER" javatype="int">
<![CDATA[10]]>
</column>
</record>
</records>
java代码段:
import com.frameworkset.common.poolman.CallableDBUtil;
。。。。。。
CallableDBUtil callableDBUtil = new CallableDBUtil();
try
{
callableDBUtil.prepareCallable("{call test_p(?,?,?,?)}");
//不允许的操作: Ordinal binding and Named binding cannot be combined!
callableDBUtil.setInt("id", 10);
callableDBUtil.registerOutParameter("name", java.sql.Types.VARCHAR);
callableDBUtil.registerOutParameter("name1", java.sql.Types.VARCHAR);
callableDBUtil.registerOutParameter("test", java.sql.Types.INTEGER);
String xmlString = callableDBUtil.executeCallableForXML();
System.out.println("xmlString:/r/n" + xmlString);
}
catch(Exception e)
{
e.printStackTrace();
}
执行上述代码的输出为:
xmlString:
<?xml version="1.0" encoding="gb2312"?>
<records>
<record>
<column name="name" type="VARCHAR" javatype="String">
<![CDATA[hello name]]>
</column>
<column name="name1" type="VARCHAR" javatype="String">
<![CDATA[hello name1]]>
</column>
<column name="test" type="INTEGER" javatype="int">
<![CDATA[10]]>
</column>
</record>
</records>
存储过程的定义如下:
CREATE OR REPLACE PROCEDURE test_p(id in number,
name out varchar2
,name1 out varchar2,test out number) IS
BEGIN
--tmpVar := 0;
name := 'hello name';
name1 := 'hello name1';
test := id;
commit;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END test_p;
bboss项目下载列表 在sourceforge访问地址为: https://sourceforge.net/project/showfiles.php?group_id=238653
xml的语法如下:
<?xml version="1.0" encoding="gb2312"?>
<records> --返回记录集的根节点
<record> --具体的记录的起点,存储过程只有一条记录集
<column name="name" type="VARCHAR" javatype="String">--记录中的列信息和值,包括列名,列对应java类型和表字段类型
<![CDATA[hello name]]>--列的值
</column>
<column name="name1" type="VARCHAR" javatype="String">
<![CDATA[hello name1]]>
</column>
<column name="test" type="INTEGER" javatype="int">
<![CDATA[10]]>
</column>
</record>
</records>
java代码段:
import com.frameworkset.common.poolman.CallableDBUtil;
。。。。。。
CallableDBUtil callableDBUtil = new CallableDBUtil();
try
{
callableDBUtil.prepareCallable("{call test_p(?,?,?,?)}");
//不允许的操作: Ordinal binding and Named binding cannot be combined!
callableDBUtil.setInt("id", 10);
callableDBUtil.registerOutParameter("name", java.sql.Types.VARCHAR);
callableDBUtil.registerOutParameter("name1", java.sql.Types.VARCHAR);
callableDBUtil.registerOutParameter("test", java.sql.Types.INTEGER);
String xmlString = callableDBUtil.executeCallableForXML();
System.out.println("xmlString:/r/n" + xmlString);
}
catch(Exception e)
{
e.printStackTrace();
}
执行上述代码的输出为:
xmlString:
<?xml version="1.0" encoding="gb2312"?>
<records>
<record>
<column name="name" type="VARCHAR" javatype="String">
<![CDATA[hello name]]>
</column>
<column name="name1" type="VARCHAR" javatype="String">
<![CDATA[hello name1]]>
</column>
<column name="test" type="INTEGER" javatype="int">
<![CDATA[10]]>
</column>
</record>
</records>
存储过程的定义如下:
CREATE OR REPLACE PROCEDURE test_p(id in number,
name out varchar2
,name1 out varchar2,test out number) IS
BEGIN
--tmpVar := 0;
name := 'hello name';
name1 := 'hello name1';
test := id;
commit;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END test_p;
bboss项目下载列表 在sourceforge访问地址为: https://sourceforge.net/project/showfiles.php?group_id=238653
相关文章推荐
- 使用VB调用Oracle程序包内的存储过程返回结果集
- 存储过程中使用RETURN语句返回数值,.Net里用ExecuteScalar方法结果将会导致一个未引用到具体对象的异常
- C#中的类SqlCommand对象使用方法ExecuteNonQuery()调用SQLServer存储过程时,存储过程执行成功,数据发生改变,但是返回-1
- asp 调用 oracle存储过程并返回结果集
- C#调用Oracle存储过程并返回结果集
- jdbc 调用 sql server 的存储过程时“该语句没有返回结果集”的解决方法
- Sybase调用存储过程并返回结果
- 安卓Service组件使用系列4:绑定service并调用service中的方法返回结果
- oracle调用存储过程和函数返回结果集
- 轮询程序中使用的各种方法:spring调用;http调用;存储过程调用;
- OCCI调用带有返回结果集的存储过程,获取结果集中指定列的值
- 基于C#中的类SqlCommand对象调用SQLServer存储过程时,存储过程执行成功,但是对象方法ExecuteNonQuery()返回-1
- oracle 调用存储过程和函数返回结果集
- 调用存储过程并且使用返回值的基本方法
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- jdbc 调用 sql server 的存储过程时“该语句没有返回结果集”的解决方法
- 使用java传参调用exe并且获取程序进度和返回结果的一种方法
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】
- 分享:在存储过程中使用另一个存储过程返回的查询结果集的方法
- java调用存储过程 返回结果集