03 jdbc 执行存储过程语句

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

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);
        }
    }

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

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);
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容