日期:2014-05-16  浏览次数:20425 次

心得8--JDBC回顾-存储过程与设置主键分析

一:  存储过程

1.  mysql 命令回顾:

创建存储过程代码(纯岁的插入):

   delimiter  @@  //占位符,为了不让程序默认认为是‘;’结束

create procedure mypro(过程名)(in unamevarchar,in upassword char)

begin

insert into (name,password)values(uname,upassword);

//mysql语句,这里与其他地方mysql增删改查的语句一样,比如插入时如果不是全部字段则要显示(name,password);

end @@

delimiter ;//设置回来mysql系统默认的结束符

访问存储过程:

Call mypro1(‘杨凯’,‘123456’);

创建存储过程代码(输出)

delimiter  @@ 

create procedure mypro1(过程名)(in uid int,outstr char)

begin

select name into str fromusers where id=uid;

//这里要特别注意一下into str语句,这里是把select输出的语句暂存在str变量中

end @@

delimiter ;

访问存储过程:

Callmypro1(1,@per);  //这里的@per代表用个临时变量per存放输出的东西

Select @per; // 在cmd窗口显示要输出的内容

2.  JDBC访问存储过程案例分析:

JDBC创建存储过程代码(纯岁的插入):

packagecom.code;

 

importjava.sql.CallableStatement;

importjava.sql.Connection;

importjava.sql.SQLException;

importjava.sql.Types;

importcom.Db.DbManager;

 

publicclass Demo4 {

   public void insert(){

      Connection con =DbManager.getConnection();

      CallableStatement cs = null;

      try {  

           cs = con.prepareCall("{call mypro(?,?)}");//记住这种特殊的格式,外面引号然后花括号,里面是语句

           cs.setString(1,"gnb");

           cs.setString(2,"gnb");

           cs.execute();

           System.out.println("成功了");

        } catch (SQLException e) {