JDBC操作简单的存储过程

/**
 * 执行存储过程
 * @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
     * 
     */
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值