简单版的JDBC存储过程--输入通用方法

来源:互联网 发布:vscode颜色主题 编辑:程序博客网 时间:2024/05/15 20:43

第一步:编写占位符

package com.yanshu.util;


public class ConnSql {


public ConnSql() {
}
/*
* 传入参数即存储名称预编译处理
*/
public static String storageNameHandle(String storageName , Integer size){

//参数没有,直接返回存储名
if(size <= 0){
return storageName;
}
//预处理参�?
String params = "?";
//参数拼接
for (int i = 1; i < size; i++) {
params+=",?";
}
String newstorageName = storageName + "("+params+")";

return newstorageName;

}

public static void main(String[] args) {

String newstorageName = ConnSql.storageNameHandle("call op_search_flow_port_analysis_trend ",4);

System.out.println("newstorageName="+newstorageName);
}
}

第2步:执行存储过程

package com.yanshu.util;


import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;


public class InformationTest {
public static boolean insertProc1(String procName,String[] args) throws SQLException
{
System.out.println("procName初始化---"+procName);
System.out.println("args初始化---"+args);
Connection conn=null;
CallableStatement call=null;
ResultSet rs = null;
boolean result=false;
//考虑到没有传递参数或者是空值直接经过false
//insertProc1("op_auction_buy_information", args);
if(StringUtils.isNullorEmpty(args)||StringUtils.isNullorEmpty(args))
{
return false;
}
if(result=true)
{
conn=JdbcUtil.getConn();
String newProcName=ConnSql.storageNameHandle(procName, args.length);
System.out.println("将要要执行的存储过程--"+newProcName);
//创建一个预处理存储对象
call=conn.prepareCall("{call "+newProcName+" }");
//call = conn.prepareCall("{call "+newProcName+"}");
System.out.println("call要执行的存储过程--"+call);
//参数注入--占位符
for(int i=0;i<args.length;i++)
{
System.out.println("第"+(i+1)+"个,args[i]="+args[i]);
call.setString(i+1, args[i]);
}
//执行SP语句
call.execute();
System.out.println("执行SP语句:");
return true;
}
System.out.println("false");
return result;
}
public static boolean insert(int i)
{System.out.println(i+"---初始值----");
if(i>0)
{
System.out.println(i+"---满足进入----");
System.out.println("----boolean----");
return true;
}
System.out.println(i+"---初始值----");
System.out.println("----false----");
return false;

}
public static void main(String[] args) throws SQLException {

String[] params1 =  new String[]{"743524358","22349808348","20170101","20170107","2" };
//insertSp("op_auction_buy_information", params1);
insertProc1("op_auction_buy_information", params1);
//insert(-2);
/*String[] params1 =  new String[]{"","","","","" };

insertProc1("op_auction_buy_information", params1);*/
}


}

原创粉丝点击