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つ目以降の単語を大文字でつなげた表現)に変換されてマッピングされる。