mybatis呼び出しpostgresqlストレージプロシージャ


以前はpostgresqlのストレージ・プロシージャを呼び出す際に、mybatisフレームワークを十分に利用していなかった従来の方法を使用していました.コードは以下の通りです.
  @Override
    public String getBinById(String id) {
     
        String name = null;
        Connection conn = null;
        try {
     
            conn = dataSource.getConnection();
            CallableStatement properCase = conn.prepareCall("{ ? = call bin_info.getbname( ? ) }");
            properCase.setString(2,id);
            properCase.registerOutParameter(1, Types.VARCHAR);
            properCase.execute();
            name = properCase.getString(1);
            log.info("the name of {} is {} ",id,name);
        } catch (SQLException e) {
     
            e.printStackTrace();
        }
        return name;
    }
呼び出すことに成功しましたが、ほとんどのコンテンツフレームワークが手伝ってくれました.もう一度自分で書く必要はありません.それによって、エラーの確率を高めます.フレームを使用した結果は次のとおりです.
マッパー層
@Select("SELECT bin_info.getbname(#{gId})")
String getBinNameByGId(@Param("gId")String gId);
注意:mybatisがpostgresqlを呼び出すストレージ・プロシージャは、mysqlのcallとは異なるselectを使用します.
サービス層
   @Override
    public String getBinById(String id) {
     
        String name = null;
        try {
     
            name = binMapper.getBinNameByGId(id);
        } catch (Exception e) {
     
            e.printStackTrace();
        }
        return name;
    }
非常に簡単で、異常をキャプチャしたコードを除いて、1行のコードでできます.