Mybatis 의 인자 및 반환 값 유형 에 대한 상세 한 설명

5593 단어 JavaMyBatis
1.일반 데이터 형식 을 되 돌려 줍 니 다.예 를 들 어 id 속성 에 따라 데이터베이스 의 특정한 필드 값 을 얻 습 니 다.
mapper 인터페이스:
    // id 에 따라 데이터베이스 에 있 는 username 필드 의 값 을 가 져 옵 니 다.    String getEmpNameById(Integer id); SQL 맵 파일:
                select username from t_employee where id = #{id}     2.자바 빈 형식 을 되 돌려 줍 니 다.예 를 들 어 특정한 필드 에 따라 데이터베이스 에 있 는 정 보 를 얻 고 조회 한 결과 정 보 를 특정한 자바 빈 형식의 데이터 로 밀봉 합 니 다.
mapper 인터페이스:
    // id 에 따라 정 보 를 조회 하고 정 보 를 Employee 대상 으로 밀봉 합 니 다.    Employee getEmpById(Integer id); SQL 맵 파일:
                select * from t_employee where id = #{id}     3.List 형식 으로 돌아 갈 때 가끔 우리 가 조회 해 야 할 데 이 터 는 한 가지 가 아 닙 니 다.예 를 들 어 퍼 지 조회,전체 표 조회 등 입 니 다.이때 돌아 오 는 데 이 터 는 하나의 데이터 만 이 아니 라 다 중 데이터 에 대한 처 리 는 List 집합 에 저장 할 수 있 습 니 다.
mapper 인터페이스:
    // 전체 표 조회 데이터 라면 조회 한 데 이 터 를 Employee 형식의 집합 으로 밀봉 합 니 다.    List getAllEmps(); SQL 맵 파일:
                select * from t_employee     4.맵 형식 으로 되 돌아 가기 MyBatis 는 조회 한 데 이 터 를 맵 으로 밀봉 하 는 것 도 지원 합 니 다.
1.조회 결과 가 하나 라면 검색 한 데 이 터 를{표 필드 이름,대응 하 는 값}방식 으로 Map 에 저장 할 수 있 습 니 다.
mapper 인터페이스:
    //  id 에 따라 정 보 를 조회 하고 결과 정 보 를 Map 으로 밀봉 합 니 다.      Map getEmpAsMapById(Integer id); SQL 맵 파일:
                select * from t_employee where id = #{id}     다음은 조회 결과 데 이 터 를 여러분 이 참고 하도록 붙 여 드 리 겠 습 니 다. 
2.조회 결과 가 여러 개의 데이터 라면 검색 한 데 이 터 를{표 의 한 필드 이름,자바 빈}방식 으로 Map 으로 밀봉 할 수 있 습 니 다.
mapper 인터페이스:
    // 모든 직원 의 정 보 를 조회 하고 데이터베이스 에 있 는'id'필드 를 key 로 하고 해당 하 는 value 를 Employee 대상 으로 봉 합 니 다.    // @MapKey 의 값 은 데이터베이스 의 어떤 필드 이름 으로 key 를 표시 합 니까?    @MapKey("id")     Map getAllEmpsAsMap(); SQL 맵 파일:
                select * from t_employee     다음은 조회 결과 입 니 다. 
MyBatis 가 조회 할 수 있 는 결 과 를 Map 으로 밀봉 하 는 메커니즘 은 매우 좋다.
5.확장 확장.위 에서 결 과 를 되 돌려 주 는 형식 은 모두 조회(select)를 바탕 으로 하 는 것 입 니 다.사실은 삭제 작업 에 대해 서도 일정한 유형의 데 이 터 를 되 돌려 줄 수 있 습 니 다.예 를 들 어 Boolean,Integer 등 입 니 다.저자:유 란 향 주  출처:CSDN  원문:https://blog.csdn.net/codejas/article/details/79520246  저작권 성명:본 고 는 블 로 거들 의 오리지널 글 입 니 다.블 로 거들 링크 를 동봉 해 주 십시오!
 
추가:
반환 값 은 간단 한 데이터 형식 일 뿐 입 니 다.
String userName = sqlSession.selectOne("self.eercise.dao.UserDao.getUserName");

여러 필드 에 대응 하 는 여러 개의 반환 값 이 라면 반환 값 형식 을 map 또는 클래스 로 설정 할 수 있 습 니 다.
반환 값 은 map 이 고 필드 이름 은 자동 으로 key 로 매 핑 되 며 속성 명 은 key 값 으로 매 핑 됩 니 다.반환 값 은 클래스 입 니 다.클래스 의 변수 이름 은 데이터베이스 에 있 는 필드 이름 이나 필드 별명 과 같 아야 합 니 다.그렇지 않 으 면 데이터베이스 에 있 는 필드 값 이 비어 있 지 않 더 라 도 클래스 에 대응 하 는 변수 값 은 비어 있 습 니 다.
반환 값 이 하나 가 아니 라 여러 기록 의 결과 집합 이 라면 반환 값 유형 은 범 형 으로 설정 하고 얻 은 결과 집 회 는 자동 으로 List 집합 에 봉 해 야 한다.
Map map = new HashMap();
map.put("id", 1);
map.put("account", "dva");
List> listMap = sqlSession.selectList("self.exercise.dao.UserDao.load_map", map);

매개 변수
매개 변수 가 하나 밖 에 없 을 때 매개 변수 유형 은 parameterType 으로 유형 을 지정 합 니 다.간단 한 유형,map 또는 대상 일 수 있 습 니 다.
매개 변수 가 간단 한 데이터 형식 이 라면\#{param}의 param 은 임의로 이름 을 지 을 수 있 습 니 다.
String userName = sqlSession.selectOne("self.exercise.dao.UserDao.getUserName",1);

또한 매개 변수 가 간단 한 유형 인 경우 콘 솔 에서 다음 과 같은 오 류 를 보고 하면:
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'user_name' in 'class java.lang.String'

그러면 파 람 을 로 바 꿔 야 돼 요.parameter,구체 적 인 원인 은 아직 밝 혀 지지 않 았 습 니 다...어떤 상황 에서 사용 하 는 지 잘 모 르 겠 습 니 다.지금 은 콘 솔 의 오 류 를 보고 해서 단 서 를 얻 을 수 밖 에 없습니다.아 시 는 달 라 오 가 있 으 면 알려 주세요.감사합니다.
만약 여러 개의 매개 변수 가 있다 면,두 가지 방법 으로 전 삼 을 실현 할 수 있다.
하 나 는 매개 변 수 를 map 나 클래스 에 밀봉 할 수 있 습 니 다.
parameterType 에서 용기 의 종 류 를 가리 키 면 됩 니 다.param 이름 은 map 의 key 나 클래스 의 변수 이름과 같 아야 값 을 가 져 올 때 정확하게 매 핑 됩 니 다.예 를 들 어 위 load맵 의 예.
2.파 라 메 터 를 직접 전달 하 는데 이런 방식 은 인터페이스 에이전트 만 사용 할 수 있다.
이 경우 맵 파일 에 매개 변수 형식 을 가리 키 지 않 고 세 가지 해결 방식 으로 나 눌 수 있 습 니 다.
(1)0,1,2...로 몇 번 째 인 자 를 가리킨다.
//      
User getUser(String user_name,String account);

맵 파일 의 문 구 는 다음 과 같 습 니 다.

(2)매개 변 수 를 param 1,param 2 로 대체 합 니 다.
//      
User getUser(String user_name,String account);

맵 파일 의 문 구 는 다음 과 같 습 니 다.

앞의 두 가지 방식 은 where 구문 에서 필드 이름 의 순 서 는 인터페이스 에서 방법 적 매개 변수 순 서 를 엄 격 히 따라 야 합 니 다.
(3)@Param 방법 으로 매 핑
//      
User getUser(@Param("userName") String user_name,@Param("account") String account);

맵 파일 의 문 구 는 다음 과 같 습 니 다.

주의 하 세 요.\#{param}의 param 이름 은@Param 방법 으로 표 시 된 새로운 매개 변수 이름 입 니 다.

좋은 웹페이지 즐겨찾기