Java 调用存储过程

时间:2021-08-22 04:24:24

sql语句

--存储过程 修改一条记录
delimiter $
create procedure proce5(id int,name varchar(20)) begin update student set sname=name where stu_id=id; 
end$
delimiter;
--存储过程增加一条记录
delimiter $
create procedure proce6(id int,name varchar(20),sco int) begin insert into student values(stu_id,sname,score);
end$
delimiter;

update student set sname='课外' where stu_id=2;
--存储过程删除一条记录
delimiter $
create procedure proce7(id int) begin delete from student where stu_id=id;
end$
delimiter;

java 调用

package com.test.procedureTest;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.connection.util.ConnectionUtil;

public class UseProcudure {
     public static void main(String[] args) throws SQLException {
        Connection conn=new ConnectionUtil().getConnection();
        //查看学生信息表
        String sql1="{call proce1}";
        CallableStatement c=conn.prepareCall(sql1);
        ResultSet rs=c.executeQuery();
        while(rs.next()){
            System.out.println("学生ID="+rs.getInt(1)+" 学生姓名="+rs.getString(2)+" 学生成绩="+rs.getInt(3));

        }
        //修改学生一条记录
        String sql2="{call proce5(?,?)}";
        CallableStatement c2=conn.prepareCall(sql2);
        c2.setInt(1, 2);
        c2.setString(2, "小尾");
        c2.execute();
        //插入学生一条记录
          String sql4="{call proce6(?,?,?)}";
          CallableStatement c3=conn.prepareCall(sql4);
          c3.setInt(1, 0);
          c3.setString(2, "存储过程");
          c3.setInt(3, 100);
          c3.execute();
        //删除一条记录
         String sql5="{call proce7(?)}";
         CallableStatement c5=conn.prepareCall(sql5);
         c5.setInt(1, 4);
         c5.execute();
        //分割线
        System.out.println("---------------------------------");
        //查看修改以后的学生信息表
        String sql3="{call proce1}";
        CallableStatement c4=conn.prepareCall(sql3);
        ResultSet rs4=c4.executeQuery();
        while(rs4.next()){
            System.out.println("学生ID="+rs4.getInt(1)+" 学生姓名="+rs4.getString(2)+" 学生成绩="+rs4.getInt(3));

        }



    }
}