Mybatis4의 기존 DAO 및 동적 에이전트

1000 단어 소감
전통 Dao
1: 기존 DAO에는 인터페이스가 필요하고 클래스가 필요합니다.
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
		User user =sqlSession.selectOne("getUserById",id);
		sqlSession.close();

클래스를 구현하려면 sqlSession이 필요합니다.selectOne("getUserById", id)는 전통적인dao의 문제는 xml의 id가 변동할 때 실현 클래스에서 코드를 수정해야 하기 때문에 매우 불편하다고 여긴다.
2: 동적 에이전트dao는 인터페이스에 클래스가 필요하지 않으면 xml의 id와 인터페이스의 방법명이 계속되는 것을 보장하기 때문에 인터페이스의 방법명과 xml의 id이름이 대응하기만 하면 코드의 유연성을 크게 증가시킬 수 있다.결합도가 낮다
동적 에이전트dao 개발 규칙
  • namespace는 인터페이스의 전체 경로 이름이어야 합니다
  • 인터페이스의 방법명은 맵 파일의 sql id와 일치해야 한다
  • 인터페이스의 입력 매개 변수는 맵 파일의parameterType 형식과 일치해야 합니다
  • 인터페이스의 반환 형식은 맵 파일의resultType 형식과 일치해야 한다
  • SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
    		UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    		User user = userMapper.getUserById(30);
    		System.out.println(user);
    		sqlSession.close();
    

    좋은 웹페이지 즐겨찾기