package net.e_lian.bpm.core.DataBaseConnection;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Types;
import oracle.jdbc.OracleCallableStatement;
* @param 脚本调用时传的参数
* procedureName 存储过程名称
*/
public class DataBaseProcedure {
DataBaseConnection dataConn = new DataBaseConnection();
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
OracleCallableStatement cstmt = null;
/***
* @see 调用不带参数的存储过程
* @param procedureName
* 存储过程名
*/
public void userdProcedure(String procedureName) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
// cstmt.setString(0, val);
cstmt.execute();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数的存储过程
* @param procedureName
* 存储过程名
* @param val
* 存储过程参数
*/
public void userdProcedure(String procedureName, String val) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, val);
cstmt.execute();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数,有返回值的存储过程
* @param procedureName
* 存储过程名
* @return String "1,1"
*/
public String ProcedureReturn(String procedureName, String val) {
String returnVal ="";//返回参数
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, val);
cstmt.registerOutParameter(2, Types.VARCHAR);
cstmt.executeUpdate();
returnVal = cstmt.getString(2);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
return returnVal;
}
/***
* @see 调用带参数的存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param coding
* 6.编码标识
*
*/
public void userdProcedure(String procedureName, String applicationid,
String domainid, String formid, String formname, String author,
String coding) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setString(6, coding);
cstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数,有返回值的存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param coding
* 6.编码标识
* @return String "1,1"
*/
public String ProcedureReturn(String procedureName, String applicationid,
String domainid, String formid, String formname, String author,
String coding) {
String returnVal ="";//返回参数
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setString(6, coding);
cstmt.registerOutParameter(7, Types.VARCHAR);
cstmt.executeUpdate();
returnVal = cstmt.getString(7);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
return returnVal;
}
/***
* @see 调用带参数的存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param created
* 6.创建日期
* @param coding
* 7.编码标识
*
*/
public void userdProcedure(String procedureName, String applicationid,
String domainid, String formid, String formname, String author, Date created,
String coding) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setDate(6, created);
cstmt.setString(7, coding);
cstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数的,且有返回值(返回一个字符串)存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param created
* 6.创建日期
* @param coding
* 7.编码标识
* @return String "0,0"
*
*/
public String ProcedureReturn(String procedureName, String applicationid,
String domainid, String formid, String formname, String author,Date created,
String coding) {
String returnVal ="";//返回参数
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setString(6, coding);
cstmt.registerOutParameter(8, Types.VARCHAR);
cstmt.executeUpdate();
returnVal = cstmt.getString(8);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
return returnVal;
}
}
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Types;
import oracle.jdbc.OracleCallableStatement;
/***
*调用方法格式为userdProcedure("call kqdelete(?)",docId);
* @see 调用Oracle 的存储过程* @param 脚本调用时传的参数
* procedureName 存储过程名称
*/
public class DataBaseProcedure {
DataBaseConnection dataConn = new DataBaseConnection();
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
OracleCallableStatement cstmt = null;
/***
* @see 调用不带参数的存储过程
* @param procedureName
* 存储过程名
*/
public void userdProcedure(String procedureName) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
// cstmt.setString(0, val);
cstmt.execute();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数的存储过程
* @param procedureName
* 存储过程名
* @param val
* 存储过程参数
*/
public void userdProcedure(String procedureName, String val) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, val);
cstmt.execute();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数,有返回值的存储过程
* @param procedureName
* 存储过程名
* @return String "1,1"
*/
public String ProcedureReturn(String procedureName, String val) {
String returnVal ="";//返回参数
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, val);
cstmt.registerOutParameter(2, Types.VARCHAR);
cstmt.executeUpdate();
returnVal = cstmt.getString(2);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
return returnVal;
}
/***
* @see 调用带参数的存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param coding
* 6.编码标识
*
*/
public void userdProcedure(String procedureName, String applicationid,
String domainid, String formid, String formname, String author,
String coding) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setString(6, coding);
cstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数,有返回值的存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param coding
* 6.编码标识
* @return String "1,1"
*/
public String ProcedureReturn(String procedureName, String applicationid,
String domainid, String formid, String formname, String author,
String coding) {
String returnVal ="";//返回参数
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setString(6, coding);
cstmt.registerOutParameter(7, Types.VARCHAR);
cstmt.executeUpdate();
returnVal = cstmt.getString(7);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
return returnVal;
}
/***
* @see 调用带参数的存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param created
* 6.创建日期
* @param coding
* 7.编码标识
*
*/
public void userdProcedure(String procedureName, String applicationid,
String domainid, String formid, String formname, String author, Date created,
String coding) {
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setDate(6, created);
cstmt.setString(7, coding);
cstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
}
/***
* @see 调用带参数的,且有返回值(返回一个字符串)存储过程
* @param procedureName
* 存储过程名
* @param applicationid
* 1.软件ID
* @param domainid
* 2. 模块ID
* @param formid
* 3.数据表单ID
* @param formname
* 4.数据表单名
* @param author
* 5.当前作者
* @param created
* 6.创建日期
* @param coding
* 7.编码标识
* @return String "0,0"
*
*/
public String ProcedureReturn(String procedureName, String applicationid,
String domainid, String formid, String formname, String author,Date created,
String coding) {
String returnVal ="";//返回参数
try {
conn = DataBaseConnection.getConnection();
statement = conn.createStatement();
// 调用
cstmt = (OracleCallableStatement) conn.prepareCall(procedureName);
cstmt.setString(1, applicationid);
cstmt.setString(2, domainid);
cstmt.setString(3, formid);
cstmt.setString(4, formname);
cstmt.setString(5, author);
cstmt.setString(6, coding);
cstmt.registerOutParameter(8, Types.VARCHAR);
cstmt.executeUpdate();
returnVal = cstmt.getString(8);
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
} finally {
dataConn.CloseConnection();
}
return returnVal;
}
}