技術メモ1年目

技術のメモ

spring bootでDB連携する際の設定ファイル

1.pom.xmlの設定

pom.xml

 <!-- 追記開始 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.3</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
<!-- 追記終了 -->

※デフォルトから追記部分を記載
上からそれぞれ、MySQLを扱うためのライブラリ、MyBatisのライブラリ、MyBatisとSpring連携用のライブラリ、データベース接続用のライブラリ。

2.データソースの設定

application.properties

#MySQLのドライバ設定
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#接続用URL
spring.datasource.url=jdbc:mysql://localhost/「DB名」※例
#ユーザ名
spring.datasource.username=
#パスワード
spring.datasource.password=

この設定により後はSpring Bootが自動的にこのファイルの設定を元にデータソース生成。

3.MyBatisのBean登録

初めに実行するクラス「FirstSpringApplication.java」を以下を以下のように。

FirstSpringApplication.java

@SpringBootApplication
@MapperScan(basePackages="com.example.persistence")
public class FirstSpringApplication {

    public static void main(String[] args) {
        SpringApplication.run(FirstSpringApplication.class, args);
    }

    // MyBatisの設定
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        // コンフィグファイルの読み込み
        sessionFactory.setConfigLocation(new ClassPathResource("/mybatis-config.xml"));

        return sessionFactory.getObject();
    }
}

@Beanを付与した戻り値「SqlSessionFactory」のメソッドを作成し、
BeanとしてDIコンテナに登録。

後は、@MapperScanアノテーションを指定し、属性「basePackages」にパッケージを指定することで、
対象のパッケージに含まれるすべてのMapperインターフェースを検出してくれる。

4.コンフィグファイルの設定

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC 
        "-//mybatis.org//DTD Config 3.0//EN" 
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>
</configuration>

この設定により、データベースのカラム名がスネーク記法(複数の単語を「_(アンダーバー」でつなげた表現)で定義されている場合、
キャメル記法(2つ目以降の単語を大文字でつなげた表現)に変換されてマッピングされる。

(例)「user_id」というカラムの場合、Javaのフィールドが「userId」でマッピングされる。