[SpringBoot] Mybatis & h2 connection test


1.プロジェクトの作成


spring initializr
  • Gradle
  • Intellijコミュニティ
  • Java 16
  • Spring Boot 2.5.2
  • Dependencies
    - H2 Database
    - JDBC API
    - Lombok

  • 2.プロジェクト構造



    3. resources/application.yml DBプロパティの設定


    1) cmd 혹은 git bash 로 H2/bin 파일 들어가서 
    - (window) ./h2.bat 실행 (mac) .h2.sh 실행
    2) 실행시 H2 화면 팝업
    	- 최초 DB 생성시 url = jdbc:h2~/jdbc 입력 
    	- 생성후 로그아웃 후 url = jdbc:h2:tcp://localhost/~/jdbc 변경 해서 접속 

    4. mybatis


    springフレームワークでmybatisを使用するにはcontext-mapperを使用します.xmlなどのプロファイルを多数生成する必要があります.ただしspringfootではファイルを単独で作成する必要がないため、ファイル構成も簡単になり、コードに集中することができます.
    mybatis-spring-boot-autoconfigureを含む、[resource] maven repositoryのWebサイトでCompile Dependenciesを表示します.Detailの内容は[mybatis]で確認できます.
    では、springframeworkで生成されたxmlファイルを生成せずに使用するにはどうすればいいのでしょうか.そうです.これはmybatis dependencyが提供したからです.以下の内容はサイトから入手したものです.翻訳が下手でそのまま持ってきた.
    では、簡単なmemberクエリー機能を実現してmybatisテストを行います.

    5.テストメンバー実装selectquery

    @Mapper
    public interface MemberMapper {
    
        @Select("SELECT * FROM MEMBER")
        List<Member> findAll();
    
        @Select("SELECT * FROM MEMBER WHERE id=#{id}")
        Member findById(@Param("id") Long id);
    }
    Mapperインタフェースクラスを作成し、MemberRepositoryクラスにMapperフィールドを作成すればよい.
    @Repository
    public class MemberRepository {
        private MemberMapper mapper;
    
        @Autowired
        public MemberRepository(MemberMapper mapper) {
            this.mapper = mapper;
        }
    
        public List<Member> findAll() {
            return mapper.findAll();
        }
    
        public Member findById(Long id) {
            return mapper.findById(id);
        }
    }
    残りのコードはGITです
    クライアントが実装されていないためpostmanを用いてテストを行った.簡単なselectを行うためにH 2データベースにdataを挿入した.

    postmanテスト結果


    次のようにfindAll()クエリが正しいかどうかを確認できます.

    さらにfindById()クエリも良い結果を見ることができます.