DriverManager.getConnection(url);
? // 调用存储过程,此存储过程有2个参数
? stmt = connection.prepareCall("{call p3(?,?)}");
? // 第一个参数是输入的,在此设置第一个参数的值:将第一个参数设置成整数值3
? stmt.setInt(1, 3);
? // 第二个参数是输出的,在此设置第二个参数的输出类型为VARCHAR
? stmt.registerOutParameter(2, Types.VARCHAR);
? // 执行存储过程
? boolean hadResults = stmt.execute();
?
? // 如果有查询语句的话,此执行过程会返回结果集,在此处理结果集里面的东西
? System.out.println("Data from table:");
? while (hadResults) {
? ? ResultSet rs = stmt.getResultSet();
? ? while(rs.next()){
? ? String id = rs.getString(1);
? ? String name = rs.getString(2);
? ? System.out.println("ID = "+id+"/tName = " + name);
? ? }
? ? hadResults = stmt.getMoreResults();
? }
?
? // 获取存储过程的返回值
? System.out.println("/nData from procedure:");
? String name = stmt.getString(2); // 获得第二个参数,因为第二个参数是输出类型的
? System.out.println("Name = " + name);
? } catch (Exception e) {
? System.out.println(e.toString());
? } finally {
? try {
? ? stmt.close();
? ? connection.close();
? } catch (Exception ex) {
? ? System.out.println(ex.getMessage());
? }
? }
?}
}
--程序执行结果--
Data from table:
ID = 1 Name = zhang
ID = 2 Name = zeng
ID = 3 Name = ming
Data from procedure:
Name = ming
三、总结
本文中给出最基本的MySQL存储过程的创建以及在Java程序的调用的示例,目的是建立读者对MySQL存储过程以及在程序中使用的大概了解和入门,希望可以对您有所帮助。读者可以参考其他的专业书籍对MySQL存储过程进行深入的探讨,本人也会在后续的文章中发表这方面的最新学习成果和大家讨论。