mybatis呼び出しpostgresqlストレージプロシージャ
5928 ワード
以前は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行のコードでできます.