Java基礎(chǔ)知識(shí):Java中調(diào)用存儲(chǔ)過(guò)程或函數(shù)2
}
public static void main(String[] args) throws SQLException {
//System.out.println(OraclePro.getConnection());
Connection con=OraclePro.getConnection();
CallableStatement cs=con.prepareCall("{?=call get_pname}");//沒(méi)有參數(shù)的函數(shù)
cs.registerOutParameter(1, Types.VARCHAR);//第一個(gè)占位為輸出,類型是varchar
cs.execute(); //不能忘記execute()
System.out.println(cs.getString(1)); //打印輸出結(jié)果,對(duì)應(yīng)registerOutParameter
}
}
[java]
//有1個(gè)輸入?yún)?shù)的函數(shù)
CallableStatement cs=con.prepareCall("{?=call get_pname1(?)}");
cs.registerOutParameter(1, Types.VARCHAR);
cs.setLong(2,25); //輸入?yún)?shù)是25
cs.execute();
//有1個(gè)輸出參數(shù)的函數(shù)
CallableStatement cs=con.prepareCall("{?=call get_pname2(?)}");
cs.registerOutParameter(1, Types.VARCHAR);
cs.registerOutParameter(2, Types.VARCHAR);
cs.execute();
System.out.println(cs.getString(1));
System.out.println(cs.getString(2));
//上面兩個(gè)結(jié)果一樣,因?yàn)閮蓚(gè)意思是一樣的
//1個(gè)輸入?yún)?shù),1個(gè)輸出參數(shù)
CallableStatement cs=con.prepareCall("{?=call get_pname3(?,?)}");
//第1個(gè)是返回值,第2個(gè)是輸入?yún)?shù),第3個(gè)是輸出參數(shù)
cs.registerOutParameter(1, Types.VARCHAR);
cs.setLong(2, 25);
cs.registerOutParameter(3, Types.VARCHAR);
cs.execute();
System.out.println(cs.getString(1));
System.out.println(cs.getString(3));
調(diào)用存儲(chǔ)過(guò)程與調(diào)用函數(shù)的方法一樣,就只是con.prepareCall("{call procedure(?,?)}")沒(méi)有?=.
下一條:Java基礎(chǔ)知識(shí):Java中調(diào)用存儲(chǔ)過(guò)程或函數(shù)2