java调用oracle存储过程
一:无返回值的存储过程
存储过程为:
create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)
as
begin
insert into dept values(deptno,dname,loc);
end;
然后呢,在java里调用时就用下面的代码:
public class TestProcedure {
Connection conn=null ;
CallableStatement cstmt=null ;
PreparedStatement pstmt=null ;
String url="jdbc:oracle:thin:@localhost:1521:mydb";
String driver="oracle.jdbc.driver.OracleDriver";
String name="";
public TestProcedure() {
try {
Class.forName(driver);
conn=DriverManager.getConnection(url,"scott","tiger");
cstmt=conn.prepareCall("{call adddept(?,?,?)}");
cstmt.setInt(1,13);
cstmt.setString(2,"间谍部2");
cstmt.setString(3,"ningbo2");
cstmt.executeUpdate();
System.out.println("success");
}
catch (Exception e){e.printStackTrace();}
finally{
cstmt.close();
conn.close();
}
}
}
dept表为oracle数据库方案scott中的一个表
二:有返回值的存储过程(非列表)
存储过程为:
CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS
BEGIN
SELECT INTO PARA2 from TESTTB WHERE I_ID= PARA1;
END TESTB;
在java里调用时就用下面的代码:
package com.hyq.src;
public class TestProcedureTWO {
public TestProcedureTWO() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, " hyq "
相关文档:
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.logging.Logger; ......
keytool -genkey -dname "CN=demo, OU=softDept, O=company,
L=puddong,S=shanghai, C=cn" -alias demo -keyalg RSA -keysize 1024
-keystore demoKeystore -validity 3650 -storepass storePwd -keypass
demoPwd
生成保存公钥和私钥的密钥仓库,保存在demoKeystore文件中。这里storepass ......
import java.io.*;
public class FileReaderSample {
public static void main(String args[]) throws IOException
{
// 建立可容纳1024个字符的数组
char data[]=new char[1024];
// 建立对象fr
FileReader fr= ......
1. ObjectInputStream 与 ObjectOutputStream的读写对象可以以对应的顺序进行多个对象的读写。
2. Break Loop label。 在循环语句前加上一个label,如label1: 然后在循环体的语句中加入break label1,即可跳出该循环,无论其是内层循环
还是外层循环。 ......