`
tjmzgn
  • 浏览: 159724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 存储过程传递数组类型的参数

    博客分类:
  • JAVA
阅读更多
import java.sql.*;

public class DBDeclareTest{
private Connection con = null;// 数据库连接
private java.sql.CallableStatement cs = null;//执行存储过程的接口

private int key;
private String name;

//在构造函数中构造连接
public DBDeclareTest(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=pubs","sa","");
System.out.println ("con ok");
    }
    catch (Exception ex) {
    ex.printStackTrace();
    }
}

//调用无返回值的存储过程
public void getOK1(){
try {
String sql="{call pro_mypro1(?,?)}";
cs = con.prepareCall(sql);
cs.setInt(1,key);
cs.setString(2,name);
cs.executeUpdate();
System.out.println ("执行成功,可以休息了。。。。");
cs.close();
con.close();
    }
    catch (Exception ex) {
    ex.printStackTrace();
    }

}
//调用有返回值的存储过程
public void getOK2(){
try {
String sql = "{call pro_mypro2(?,?)}";
cs = con.prepareCall(sql);
//设置output外部传参
cs.registerOutParameter(1,java.sql.Types.BIT);
cs.setString(2,name);
cs.execute();
//获得output外部传参的值
int numOut = cs.getInt(1);
if(numOut ==1){
System.out.println ("数据表存在");
}else{
System.out.println ("数据表不存在!!!");
}
cs.close();
con.close();
    }
    catch (Exception ex) {
    ex.printStackTrace();
    }
}

//返回结果集的存储过程
public void getOK3(){
try {
String sql = "{call pro_mypro3(?,?)}";
cs = con.prepareCall(sql);
//设置output外部传参
cs.registerOutParameter(1,java.sql.Types.BIT);
cs.setString(2,name);
boolean flag = cs.execute();
System.out.println (flag);
if(flag){
System.out.println ("OKOKOKO");
ResultSet rs = cs.getResultSet();
ResultSetMetaData rsmd =rs.getMetaData();
     int numberOfColumns = rsmd.getColumnCount();
while(rs.next()){
for(int i=0;i<numberOfColumns;i++)
{
System.out.println (rsmd.getColumnName(i)+"  ");
System.out.println (rs.getObject(i)+"  ");
}
}
}else
{
System.out.println ("表名不存在:"+cs.getBoolean(1));
}
cs.close();
con.close();
    }
    catch (Exception ex) {
    ex.printStackTrace();
    }
}

public void setKey(int k){
this.key = k;
}
public int getKey(){
return this.key;
}
public void setName(String n){
this.name = n;
}
public String getName(){
return this.name;
}

}
分享到:
评论

相关推荐

    wxh java中传递数组参数.rar

    在Java编程语言中,传递数组作为方法参数是一个常见的操作,特别是在处理批量数据或者进行集合操作时。本资源“wxh java中传递数组参数.rar”包含了关于这个主题的详细信息,特别是文档“java中传递数组参数.doc”。...

    oracle class12.jar nls_charset12.jar存储过程接收数组空值

    综上所述,"oracle class12.jar nls_charset12.jar存储过程接收数组空值"这个问题的核心在于正确处理数组中的空值,以及理解如何在Java和Oracle数据库之间传递数组参数。通过合理定义数组类型、初始化数组、正确传递...

    Spring访问传入数组参数的Oracle存储过程

    总的来说,理解如何在Spring中正确地调用Oracle存储过程并传递数组参数是提高应用程序效率和数据库操作灵活性的重要技能。这涉及到了数据库设计、Java编程、Spring框架的使用以及对Oracle特定特性的掌握。通过上述...

    Java技术对接收数组参数的成员方法进行反射

    如果方法接收数组作为参数,我们需要传递数组的类类型,例如`int[].class`。 3. 创建数组:使用`Array.newInstance()`方法创建指定类型的数组实例。例如,`Array.newInstance(int.class, 5)`将创建一个包含5个整数...

    accp5.0java第八章 数组(改)

    7. **数组作为方法参数**:在函数或方法中传递数组,使得函数可以对整个数组进行处理。 8. **异常处理**:访问越界数组元素会导致`ArrayIndexOutOfBoundsException`,在实际编程中应避免这种情况。 9. **Java集合...

    Mybatis调用PostgreSQL存储过程实现数组入参传递

    总结来说,本文详细讲解了如何在MyBatis中调用PostgreSQL的存储过程,特别是如何处理数组类型的输入参数。通过自定义`TypeHandler`,我们可以使MyBatis与PostgreSQL的数组类型无缝对接,实现高效、准确的数据操作。

    Java调用存储过程--传入集合参数

    在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将深入探讨如何在Java中有效地调用存储过程,并向其传递集合参数,主要聚焦于Oracle...

    Java数组练习题(带答案).doc

    2. **数组复制**:在Java中,当使用`=`复制数组时,实际上是在传递数组的引用,而不是复制整个数组的内容。 3. **内存管理**:JVM将数组存储在堆内存中,而不是栈内存。这是因为数组可能包含大量的元素,占用较大...

    Java数组,Java数组,多线程编程

    Java数组是程序设计中的基本构建块,它允许程序员存储多个相同类型的数据在一个单一的结构中。在Java中,数组是一种对象,它们具有固定的大小,并且一旦创建,就不能更改其长度。数组提供了通过索引来访问其元素的...

    Java调用带参数的存储过程并返回集合

    在处理数组参数时,Oracle提供了PL/SQL TABLE类型的参数,Java可以通过数组或Java Collection类型传递。在返回集合时,可以将结果集映射到Java集合对象,如ArrayList或自定义的实体类,这样可以更好地适应业务需求。...

    jquery ajax 向后台传递数组参数示例

    特别是,当需要传递数组参数时,如果数组中包含对象类型的数据,直接传递可能会遇到问题,如在后台接收到的仅是"[object Object]"这样的字符串。本文将详细解释这种情况的原因,并提供相应的解决方法。 首先,我们...

    java数组 类型

    Java 数组类型是 Java 语言中的一种基本数据类型,用于存储多个相同类型的值。 Java 数组类型可以分为基本类型数组和非基本类型数组两种。 一、基本类型数组 基本类型数组是由基本类型变量组成的数组,例如 int[]...

    5-Java数组与方法

    在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它们提供了一种方式来组织和管理大量数据,使得我们可以高效地访问和操作这些数据。本章将深入探讨数组的基本概念、定义以及如何在实际编程...

    accp5.0java第八章 数组

    9. **数组与泛型**:在Java泛型中,可以创建泛型数组,但不能直接创建类型参数的数组,如`T[] array = new T[10];`是不允许的。需要使用类型擦除的技巧或绕过此限制。 10. **内存管理**:Java的垃圾回收机制会自动...

    Java语言编程 在方法中使用数组

    在定义方法时,可以在方法的参数列表中指定数组类型的参数。这样,可以将数组作为参数传递给方法,以便在方法中对数组进行操作。 例如,在下面的示例中,我们定义了一个 `GetMaxValue` 方法,该方法接受一个 `int` ...

    07-Java基础(数组-常见问题)

    Java语言中的数组是编程中最基本的数据结构之一,它允许存储同一类型的数据集合。在这个主题“07-Java基础(数组-常见问题)”中,我们将深入探讨数组在Java编程中的一些常见问题及其解决方案。 1. **数组的声明与...

    oracle数组存储过程批量插入

    同样,对于Java,我们需要创建一个对象数组,对应于数据库中的BUT_UKBNOV_CTC_ORDER_REC类型,并将其传递给存储过程。 在Java示例中,我们还看到了如何为大数据量插入创建Oracle对象类型和数组类型,以及相应的存储...

Global site tag (gtag.js) - Google Analytics