您的位置:首页 > 编程语言 > Java开发

Java调用存储过程

2013-05-17 15:49 274 查看
package search;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ProduceTest
{
public static void main(String[]args)
{
Connection conn=null;
try
{
conn=new ConnectionProvider().getConnection();
//CallableStatement cs=conn.prepareCall("call selectAll()");
CallableStatement cs=conn.prepareCall("call selectInfoByName(?)");
cs.setString(1,"yukjin");

ResultSet rs=cs.executeQuery();
while(rs.next())
{
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}

} catch (SQLException e)
{

e.printStackTrace();
}
}
}
delimiter $create procedure selectAll()beginselect*from customers;end;$create procedure selectInfoByName(In p_in varchar(16) charset 'utf8')beginselect*from customers where name=p_in;end;$以上程序调用mysql端的selectAll()和selectInfoByName(In p_in)存储过程两个存储过程分别定义如下:对于存储过程,mysql中有三类可传递的参数类型,IN,OUT,IN OUT。IN型,必须在调用时指定具体值,并且在存储过程中即使改变也不返回。OUT,用来存储返回的结果IN OUT型,综合上面两种类型OUT型在用java调用时必须使用registerOutParameter()注册。注意:假如存储过程的参数还有中文,那么为了避免出现乱码等问题,首先确保你的数据库,表以及字段的字符编码是否支持中文,最后在创建存储过程时需要显式声明参数字符集。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL 存储过程 java