java调用Oracle存储过程的方法实例
1.测试添加数据的procedure
复制代码 代码如下:public void testProcedure() {
Connection con = getConnction();
// **1.测试添加数据的procedure
String procedure = "{call users_insert_proc(?,?,?,?) }";
CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 123450);
cs.setString(2, "xxiaox");
cs.setString(3, "Ww342864");
cs.setString(4, "742621646@qq.com");
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
2.测试删除数据的procedure 复制代码 代码如下:
public void testDelPro() {
Connection con = getConnction();
// **2.测试删除数据的procedure
String procedure = "{call delete_usersbyid_proc(?) }";
CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 123450);
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
3.测试更新数据的procedure 复制代码 代码如下:
public void testDelPro() {
Connection con = getConnction();
// **3.测试更新数据的procedure
String procedure = "{call users_updatebyId_proc(?,?,?,?) }";
CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 101); cs.setString(2, "小第三方的浩"); cs.setString(3, "asdf342864"); cs.setString(4, "742621646@qq.com");
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
4.测试查找数据的procedure
a)建包体
b)创建查询的procedure
复制代码 代码如下:create or replace package userspackage as
type users_cursor is ref cursor;
end userspackage;
复制代码 代码如下:
create or replace procedure users_packageAll(
s_id in number ,u_cursor out userspackage.users_cursor) is
begin
if s_id = 0 then
open u_cursor for select id,name,pword,email from users;
else
open u_cursor for select id,name,pword,email from users where id=s_id;
end if;
end;
c)Java调用
复制代码 代码如下:public void testDelPro() {
Connection con = getConnction();
// 返回查询procedure
String procedure = "{call users_packageAll(?,?) }";
CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 0);
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.execute();
ResultSet rs = (ResultSet)cs.getObject(2);
while (rs.next()) {
System.out.println(rs.getInt(1) + " " + rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
您可能感兴趣的文章:
- Java 打印自定义类 实例 , 自动调用toString 方法的原因
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(一)
- Java 反射调用静态方法的简单实例
- C#调用Java方法(详细实例)
- Java中可以直接调用类中静态方法,不用实例化
- 三种特征选择方法及Spark MLlib调用实例(Scala/Java/python)
- java反射获取类实例并调用私有方法
- Android-java调用本地方法返回字符串显示在界面上/NDK-JNI开发实例(二)
- java调用.NET的webservice实例的二种方法soap方式axis模式
- 使用java反射中的getMethod,invoke方法调用对象方法的实例
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(二)
- 通过Java反射调用方法的实例,通过这个例子,能明白怎么用反射。
- java 多态对象 封装方法 再调用 实例:学校有不同班的学生
- Java反射根据不同方法名动态调用不同的方法(实例)
- Java动态调用类方法实例
- java声明子类时,静态语句块、实例代码块、构造器方法这3者的调用顺序
- Java多态 实例子类自动调用父类为空的构造方法 成员变量不支持Override 可写,没多态效果
- Java调用Oracle存储过程实例
- Java:DocumentBuilderFactory调用XML的方法实例