MyBatisを使ってみる

提供: tknotebook
2016年11月16日 (水) 09:23時点におけるNakamuri (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

メインページ>コンピュータの部屋#Java>MyBatis Tips


これは MyBatis のごく簡単なチュートリアルです。MyBatis を使ってある単独のテーブルのレコードを読む簡単な例を示します。

準備

簡単に始めるなら Maven を使うのがよいでしょう。Eclipse(現在の版は 4.6Neon)のPleiades には Maven が含まれておりますので Pleiades(Neon, All in One)をインストールされていれば準備完了です。Java は 今時ですから 1.8 にしてください。

プロジェクトの設定

Pleades で Mavenプロジェクトを作成したら、pom.xml の dependencies を以下のように設定します。

	<dependencies>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.1</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>[5.1.40]</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.21</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.1.7</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.1.7</version>
		</dependency>
	</dependencies>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>[5.1.40]</version>
</dependency>

は MySQL を使うためです。他のデータベースを使うなら適宜変更してください。

また、Javaコンパイラーのバージョンとソースコードのエンコーディングの指定も忘れずに。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <maven.compiler.source>${java.version}</maven.compiler.source>
</properties>

また、プロジェクトの src/main/resouce には、ログ出力のための logback 用の設定ファイルを置きます。 名称は logback.xml 内容は以下のような感じでよいでしょう。

<?xml version="1.0" encoding="UTF-8" ?>

<!--suppress ALL -->
<configuration>

    <!--変数の定義を行います。2行目は外部のプロパティファイルの内容から定義します。-->
    <property name="LOG_DIR" value="c:/logback_logs" />

    <!-- 標準出力に出力する設定です。-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--アペンダでのレベル設定-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
        <target>System.out</target>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n</pattern>
        </encoder>
        <withJasi>true</withJasi>
    </appender>

    <!--ログファイルを出力するシンプルな設定です。-->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <!--アペンダでのレベル設定-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
        <!--<file>${LOG_DIR}/Trace.log</file>-->
        <file>log/Trace.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--ログファイルをアーカイブする設定です。アーカイブは1時間毎に行います。-->
    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--アペンダでのレベル設定-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!--<file>${LOG_DIR}/Rolling.log</file>-->
        <file>log/Rolling.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--<fileNamePattern>${LOG_DIR}/Rolling_%d{yyyy-MM-dd_HH}.log</fileNamePattern>-->
            <fileNamePattern>log/Rolling_%d{yyyy-MM-dd_HH}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- ルートから全てのログをアペンダに流し、アペンダでフィルタリングを行う方式とします。-->
    <root level="TRACE">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="ROLLING"/>
    </root>
</configuration>

この辺慣れている方は、ログ周りの dependencies の設定や 設定ファイルの内容はお好きなようにしてください。 log4j などを使いたい人もいるでしょう。