私が思うVO
DBからMVCの各段階で大量の情報がやり取りされている.この場合、多くの情報を同時に送信できる情報器が必要です.情報器を独自に区分し概念を確立した.
DTO、VOの定義
DTO:情報ソースDBのテーブル列をモデリングするクラス.1つのテーブルのすべてのカラムがメンバー変数として使用されます.
VO:DTO以外の情報器は,表欄以外の情報を含む場合に用いる情報器が必要である.
2-1. あるビューに必要なすべての情報を持つVO.
2-2. mapper.パラメータをxmlのVOに渡します.
VOの使用
JSP : ${VO.abcd} or ${abcd} == vo.getAbcd();
Mapper.xml : #{VO.abcd} or #{abcd} == vo.getAdbc();
getAbcd()メソッドを作成した場合は、VOクラスのメンバー変数ではない場合でも、JSPまたはMapperを使用して必要な値を指定できます.xmlに送信できます.
その利点は、モデル側ではなく、マッパまたはjspに必要な値の演算ロジックをサービスまたはVOクラス内部に送信できることです.
ex) mapper.xmlにメッセージを渡すときにhashMapを使うのとVOを使うのとの違い
DTO、VOの定義
DTO:情報ソースDBのテーブル列をモデリングするクラス.1つのテーブルのすべてのカラムがメンバー変数として使用されます.
VO:DTO以外の情報器は,表欄以外の情報を含む場合に用いる情報器が必要である.
2-1. あるビューに必要なすべての情報を持つVO.
2-2. mapper.パラメータをxmlのVOに渡します.
JSP : ${VO.abcd} or ${abcd} == vo.getAbcd();
Mapper.xml : #{VO.abcd} or #{abcd} == vo.getAdbc();
getAbcd()メソッドを作成した場合は、VOクラスのメンバー変数ではない場合でも、JSPまたはMapperを使用して必要な値を指定できます.xmlに送信できます.
その利点は、モデル側ではなく、マッパまたはjspに必要な値の演算ロジックをサービスまたはVOクラス内部に送信できることです.
ex) mapper.xmlにメッセージを渡すときにhashMapを使うのとVOを使うのとの違い
public class BoardVo {
String keyword; //for 검색 , 확장성
private int cp;//페이지 번호
private int ps;//페이지 사이즈
{
cp = 1;
ps = 5;
}
public int getStartRow() {
return (cp-1) * ps; //ex) 0 * 5 = 0
}
public int getEndRow() {
return cp * ps; //ex) 1 * 5 = 5
}
}
上のVOと下のVOは違いますhashMapを使用する場合、導入は、サービス団が演算ロジックを提供していることを示すためである.public interface BoardMapper {
List<Board> list(Map<String,Integer> map);
}
@Autowired
private BoardMapper boardDao;
@Override
public BoardVo listS(int cp, int ps) {
Map<String, Integer> map = new HashMap<String,Integer>();
int initRow = (cp-1)*ps;
int lastRow = cp*ps;
map.put("initRow",initRow);
map.put("lastRow", lastRow);
List<Board> list = boardDao.list(map);
}
hashMapで伝達するパラメータが多くなく,演算を必要としない場合には設計VOよりも便利であるようである.Reference
この問題について(私が思うVO), 我々は、より多くの情報をここで見つけました https://velog.io/@betweenhj702/내가-생각하는-VOテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol