Mybatisで文字コードを指定

Mybatisで文字コードを指定

Mybatisで文字コードを指定する際の設定方法は、通常、データソースやJDBCの接続設定で行います。
以下は、test_exampleというテーブルを使った例です。

mybatis-config.xmlを修正する方法

例えば、MySQLを使用している場合の設定は以下のようになります。
useUnicodeとcharacterEncodingが必要になります。

<!-- mybatis-config.xml -->
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test_example?useUnicode=true&characterEncoding=UTF-8"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
      </dataSource>
    </environment>
  </environments>
</configuration>

SpringBootの例

application.propertiesやapplication.ymlファイルに文字コードを指定できます。

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: yourpassword
    driver-class-name: com.mysql.cj.jdbc.Driver


これらの設定で、test_exampleテーブルの文字列データはUTF-8で正しく処理されます。