JDBC操作简单的存储过程

来源:互联网 发布:公安 软件代理加盟 编辑:程序博客网 时间:2024/05/29 14:57
/** * 执行存储过程 * @author John */public class Procedure {    @Test    public void procedure1(){        Connection conn=null;        CallableStatement cs=null;//CallableStatement继承自prepareStatement        ResultSet rs=null;        JDBCUtils utils = JDBCUtils.getInstance();        //创建执行存储过程的sql{call 存储过程的名称(?,?...参数)}        String sql="{call addId(?,?,?,?,?)}";        try {            conn = utils.getConnection();            cs = conn.prepareCall(sql);            cs.setString(1, "小明");            cs.setString(2, "85858585");            cs.setInt(3, 1);            cs.setInt(4, 18);            cs.registerOutParameter(5,Types.INTEGER);//注册输出参数类型,即OUT类型的参数            cs.executeUpdate();            int id = cs.getInt(5);            System.out.println("id:"+id);        } catch (SQLException e) {            e.printStackTrace();        }finally{            utils.free(conn, cs, rs);        }    }    //这是一个简单的存储过程    /**     * CREATE PROCEDURE addId (//创建存储过程,名字为addId            IN pusername VARCHAR (255), //IN代表输入参数            IN p_password VARCHAR (255),            IN p_sex INT,            IN p_age INT,            OUT p_id INT) //OUT代表输出参数        BEGIN //开始            INSERT INTO USER (username,password,sex,age) VALUES (pusername,p_password,p_sex,p_age);            SELECT LAST_INSERT_ID() INTO p_id;//找出最新插入记录的id  LAST_INSERT_ID是mysql特有的函数        END     *      */}
0 0