前几天看了一下MySQL的存储过程和函数,自己就试验写了一个简单存储过程,由于一直都在学习Java,就想到了该如何在Java程序中调用存储过程和函数,今天百度了解了一下就写了一个简单的,无非是大同小异,切勿见笑。
下边就是整个过程:
这是一个简单的MySQL存储过程:
create procedure addInformation(in i_id tinyint,in i_name
char)
begin
declare i tinyint;
set i=i_id;
while i<=26 do
insert into user(id,name) values(i,i_name);
set i=i+1;
end while;
end
user表结构:
执行结果:
接下来就是用Java小程序调用该存储过程,Java代码如下:
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class CallProcedure {
public static void main(String[] args)
{
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3305/test", "root", "123456");
//调用存储过程的字符串
String str="{call addInformation(?,?)}";
//进行预编译
CallableStatement cs=con.prepareCall(str);
cs.setObject(1, 1); //设置第一个参数
cs.setObject(2, "k"); //设置第二个参数
cs.execute(); //执行
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
删掉user表中原有的数据,执行Java程序,结果如下:
如果没有参数就直接调用cs.execute()函数,执行即可。例子比较简单,适合新手入门,就大概到这里吧!