03 jdbc 执行存储过程语句

执行输入参数的存储过程:

03 jdbc 执行存储过程语句_第1张图片
Paste_Image.png
public static void main(String[] args) {
        Connection conn = null;
        CallableStatement cs = null;
        ResultSet rs = null;
        try {
            conn = JdbcUtil.getConnection();
            String sql = "CALL pro_searchById(2);";
            cs = conn.prepareCall(sql);
            rs = cs.executeQuery();
            while (rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String address = rs.getString("address");
                System.out.println(id+":"+name+":"+address);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            JdbcUtil.release(conn, cs,rs);
        }
    }

执行带输入输出参数的存储过程:

03 jdbc 执行存储过程语句_第2张图片
Paste_Image.png
public static void main(String[] args) {
        /**
         * 执行带有输出参数的存储过程
         */
        Connection conn = null;
        CallableStatement stmt = null;
        try{
            conn = JdbcUtil.getConnection();
            String sql = "CALL pro_queryNameById(?,?);"; // 不管输入还是输出都可以使用?号代替参数
            stmt = conn.prepareCall(sql);
            /**
             * 设置输入参数
             */
            stmt.setInt(1, 2);//第一个参数,传入4
            /**
             * 设置输出参数
             * sqlType: 就是存储过程中输出参数的数据类型
             */
            stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
            
            stmt.executeQuery();
            
            /**
             *  从输出参数中获取数据。获取的方法 getXXX()方法
             *  注意: 
             *      ResultSet的getXX()方法为了获取列的值
             *      CallableStatement的getXXX()为了获取输出参数的值
             */
            String name = stmt.getString(2);//这里的参数和设置输出参数的位置保持一致的!!!!
            System.out.println(name);
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            //7)关闭资源
            JdbcUtil.release(conn, stmt);
        }
    }

你可能感兴趣的:(03 jdbc 执行存储过程语句)