<Java-MyBatis>マッピング時のカラム名をスネークケースからキャメルケースに自動変換する

Java

やりたい事のイメージ

DBのカラム名が「emp_id」というスネークケースの場合に、クラスのカラム名が「empId」というキャメルケースに自動的にマッピングさせる場合のやり方です。この設定を行えばresultMapの記述が不要になります。

<mapper namespace="your_space">
  <select id="selectExample">
    SELECT
        employee.emp_id, 
        employee.emp_name
    FROM
        employee 
  </select>
</mapper>
public class ExampleModel {
    private Integer empId;
    private String empName;
}

スネークケースからキャメルケースに自動変換する3つの方法

いずれかの方法で実現可能です。

方法① application.properties

your root/
`-- learning/
  |-- src/
  |   `-- main/
  |       `-- resources/
  |          `-- application.properties ★
  `-- pom.xml
mybatis.configuration.map-underscore-to-camel-case=true

方法② application.yml

your root/
`-- learning/
  |-- src/
  |   `-- main/
  |       `-- resources/
  |          `-- application.yml ★
  `-- pom.xml
mybatis:
  configuration:
    mapUnderscoreToCamelCase: true

方法③ Spring Boot 設定クラス(@Configuration)

import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisConfig {
    @Bean
    public ConfigurationCustomizer mybatisConfigurationCustomizer() {
        return new ConfigurationCustomizer() {
            @Override
            public void customize(org.apache.ibatis.session.Configuration configuration) {
                configuration.setMapUnderscoreToCamelCase(true); //★
            }
        };
    }
}

札幌在住エンジニア。JavaやPHPやWordPressを中心とした記事が中心です。

【SE歴】四半世紀以上
【Backend】php / java(spring) / c# / AdobeFlex / c++ / VB / cobol
【Frontend】 vue.js / jquery他 / javascript / html / css
【DB】oracle / mysql / mariadb / sqlite
【infrastructure】aws / oracle / gcp
【license】aws(saa-c03) / oracle master / XML Master / Sun Certified Programmer for the Java 2 Platform 1.4

Nobelをフォローする
Java
Nobelをフォローする

コメント

タイトルとURLをコピーしました