<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>技術ブログ &#124; 株式会社クラウディア &#187; MySQL</title>
	<atom:link href="https://cloudear.jp/blog/?cat=11&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://cloudear.jp/blog</link>
	<description>クラウド専門の業務システム・社内ツール開発</description>
	<lastBuildDate>Fri, 12 Nov 2021 05:00:35 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.1</generator>
	<item>
		<title>デッドロックを回避するために</title>
		<link>https://cloudear.jp/blog/?p=1335</link>
		<comments>https://cloudear.jp/blog/?p=1335#comments</comments>
		<pubDate>Sun, 12 Jul 2015 11:42:05 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[インフラ]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=1335</guid>
		<description><![CDATA[みなさんこんにちは masa です。今日はデータベースにおいて致命的なバグであるデッドロックについて取り上げます。プログラマーや DBA な方以外にも聞いたことがあるワードなのではないでしょうか。 開発の流れにおいて、き [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは masa です。今日はデータベースにおいて致命的なバグであるデッドロックについて取り上げます。プログラマーや DBA な方以外にも聞いたことがあるワードなのではないでしょうか。</p>
<p><span id="more-1335"></span></p>
<p>開発の流れにおいて、きちんとトランザクション設計、リソースアクセス順序の設計がされていればデッドロックは理論上は発生しないはずなのですが、オープンソースのソフトウェア基盤なんかを使用している場合、世界中のエンジニアがバラで開発してる宿命というもあり、普通にデッドロックしたりしますｗ</p>
<p>デッドロックは同じタイミングでリソースを確保しにいった際に発生するものなので、リリースするまで発覚しなかったというケースもあります。</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"><strong>　そもそもデッドロックとは何なのかおさらい</strong></span></p>
<p>まずは問題ないアクセスについて図を描いてみましたのでみてみてください。トランザクション＝スレッドと捉えてもらっても構いません。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/07/deadlock1.png"><img class="alignnone size-full wp-image-1337" src="https://cloudear.jp/blog/wp-content/uploads/2015/07/deadlock1.png" alt="deadlock1" width="600" height="400" /></a></p>
<p>（解説）上の図では各処理が同じ順番でテーブルへアクセスするため、仮に同タイミングで書き込みをしようとしてもどちらか遅れたほうが、相手の処理が終わる（＝ロック解放）のを待つだけです。</p>
<p>&nbsp;</p>
<p>では次は問題のある処理の図です。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/07/deadlock2.png"><img class="alignnone size-full wp-image-1344" src="https://cloudear.jp/blog/wp-content/uploads/2015/07/deadlock2.png" alt="deadlock2" width="600" height="400" /></a></p>
<p>&nbsp;</p>
<p>（解説）上の図では各処理がテーブルへアクセスする順番が逆になっています。この場合にロックと次の処理が <strong>&#8220;たすき掛け&#8221; </strong>の状態になりますので、これ以上処理は進まず停止してしまいます。問題ない処理と決定的に違うのは、<strong>待ち時間が発生するのではなく、永久にストップするという点です。</strong></p>
<p>&nbsp;</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　どうすればデッドロックを無くせるのか？</span></strong></p>
<p>これは実は非常に難しい質問だと思います。デッドロックはバグそのものですので、ソフトウェアの規模が大きくなれば大きくなるほど潜在的に増えていきます。小さいシステムならまだしも、数百万ステップに及ぶプログラムにおいて、人間ですから設計図がまちがっているかもしれませんし、プログラマーがうっかり実装を手誤ってしまうかもしれません。</p>
<p>個人的にはデッドロックはゼロに近づける（＝減らす）努力はできても、完全にゼロにすることはほぼ不可能であるという立場にいます。ソフトウェアにおいてバグをゼロにすることは不可能であるという考えそのものですが、少しでもデッドロックが起きないように以下のことに気を付ける必要があります。</p>
<ol>
<li><span style="font-size: 12pt; color: #f55858;"><strong>トランザクションからアクセスするテーブルの順番を一貫する</strong></span></li>
<li><span style="font-size: 12pt; color: #f55858;"><strong>不必要にトランザクションを長くしない</strong></span></li>
<li><span style="font-size: 12pt; color: #f55858;"><strong>不必要に FOR UPDATE でロックを掛けない</strong></span></li>
<li><span style="font-size: 12pt; color: #f55858;"><strong>可能な限り行ロックする</strong></span></li>
</ol>
<p>以上のことに気を付けて設計、実装が出来れば限りなくデッドロックを排除できると考えます。</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"><strong>　それでもデッドロックが起きたときはどうすればいいのか</strong></span></p>
<p>これは実装でカバーしましょう。トランザクションの処理にタイムアウトもしくはリトライ回数を準備しておき、どちらかの処理がロックを解放するようにします。</p>
<p>&nbsp;</p>
<p>いかがでしたか？今日は発見が遅れがちなバグであるデッドロックについて取り上げました。あえて名前は挙げませんが世界的に有名なソフトウェアでもデッドロックは起きています。「デッドロック起こすのは初心者！」などとおごらずに慎重にプロジェクトを進めるよう常に意識したいものです。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=1335</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MyBatis から MySQL を操作する</title>
		<link>https://cloudear.jp/blog/?p=712</link>
		<comments>https://cloudear.jp/blog/?p=712#comments</comments>
		<pubDate>Sun, 01 Mar 2015 08:23:04 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[O/Rマッパー]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=712</guid>
		<description><![CDATA[みなさんこんにちは masa です。前回は MyBatis Generator により、初期ファイルを自動生成しました。今回はそれらを使い、実際に MySQL を操作する方法とカスタマイズ方法をご紹介します。 さて、前回 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは masa です。前回は MyBatis Generator により、初期ファイルを自動生成しました。今回はそれらを使い、実際に MySQL を操作する方法とカスタマイズ方法をご紹介します。<br />
<span id="more-712"></span></p>
<p>さて、前回　<a title="MyBatis Generator の使い方" href="https://cloudear.jp/blog/?p=708" target="_blank">MyBatis Generator の使い方</a> で以下の4つのファイルが自動生成されました。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/02/tcar.png"><img class="alignnone size-full wp-image-786" src="https://cloudear.jp/blog/wp-content/uploads/2015/02/tcar.png" alt="tcar" width="193" height="76" /></a></p>
<p><span style="font-size: 8pt;"><span style="font-size: 10pt;"><strong>・データを格納するエンティティクラス</strong></span><br />
<span style="font-size: 10pt;"> <strong> ・抽出条件を設定するサンプルクラス</strong></span><br />
<span style="font-size: 10pt;"> <strong> ・データ操作のメインとなるマッパークラス</strong></span><br />
<span style="font-size: 10pt;"> <strong>・上のマッパークラスに紐づいた実際の SQL を書く XML ファイル</strong></span></span></p>
<p><span style="font-size: 8pt;">※ファイル名は DB のテーブル名が頭につきますので、みなさんは違うファイル名でも気にしないでOKです。</span></p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 18pt;"><strong>　1. ライブラリとデータソースの設定をする</strong></span></p>
<p>1.  Maven もしくは Gradle から以下のライブラリを入れてください。</p>
<p><strong>・mybatis</strong><br />
<strong>・mysql-connector-java</strong><br />
<strong>・commons-dbcp2</strong></p>
<pre class="lang:default decode:true ">        &lt;dependency&gt;
            &lt;groupId&gt;org.mybatis&lt;/groupId&gt;
            &lt;artifactId&gt;mybatis&lt;/artifactId&gt;
            &lt;version&gt;3.2.8&lt;/version&gt;
            &lt;type&gt;jar&lt;/type&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;mysql&lt;/groupId&gt;
            &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
            &lt;artifactId&gt;commons-dbcp2&lt;/artifactId&gt;
        &lt;/dependency&gt;</pre>
<p>&nbsp;</p>
<p>2. applicationContext.xml を以下の情報で src/main/resources/ に作成</p>
<pre class="lang:default decode:true">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
  xsi:schemaLocation="

http://www.springframework.org/schema/beans


http://www.springframework.org/schema/beans/spring-beans-4.0.xsd


http://www.springframework.org/schema/context


http://www.springframework.org/schema/context/spring-context-4.0.xsd


http://mybatis.org/schema/mybatis-spring

    http://mybatis.org/schema/mybatis-spring.xsd"&gt;

&lt;!-- DataSource --&gt;
&lt;bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"&gt;
  &lt;property name="driverClassName" value="com.mysql.jdbc.Driver" /&gt;
  &lt;property name="url" value="jdbc:mysql://localhost/car" /&gt;   //接続サーバーとMySQLスキーマ名
  &lt;property name="username" value="root" /&gt;   //データベースのユーザー名
  &lt;property name="password" value="" /&gt;   //接続パスワード
&lt;/bean&gt;

&lt;!-- SqlSessionFactory --&gt;
&lt;bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" &gt;
  &lt;property name="dataSource" ref="dataSource" /&gt;
&lt;/bean&gt;

&lt;!-- Mapper --&gt;
//↓id名は呼び出すために使う名前なので任意でOKです
&lt;bean id="mp" class="org.mybatis.spring.mapper.MapperFactoryBean"&gt;
//↓valueには自動生成された *Mapper.java クラスをパッケージ名込みで指定してください
  &lt;property name="mapperInterface" value="jp.gmo.myfirstspringboot.mybatis.TCarMapper" /&gt;
  &lt;property name="sqlSessionFactory" ref="sqlSessionFactory" /&gt;
&lt;/bean&gt;

&lt;/beans&gt;</pre>
<p><span style="font-size: 8pt;"> ※applicationContext.xml は、データベースの接続情報とマッパークラスにID名をつけて登録する設定ファイルです。</span></p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 18pt;"><strong>　2. データにアクセスするメインクラスを作成</strong></span></p>
<p>今回準備したテーブルはこんな感じです。<br />
(データベース名 car  テーブル名 t_car)</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/tcar_table.png"><img class="alignnone size-full wp-image-814" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/tcar_table.png" alt="tcar_table" width="571" height="154" /></a></p>
<p>&nbsp;</p>
<p>src/main/resources 配下に同パッケージ名でマッパー *.xml ファイルを配置します。<br />
これにより、ビルド後に classファイルと同じディレクトリに入ります。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/target_maven.png"><img class="alignnone size-full wp-image-838" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/target_maven.png" alt="target_maven" width="373" height="346" /></a></p>
<p>&nbsp;</p>
<p>早速以下のメインクラスを作って  id, name, brand のデータを取り出してみましょう。</p>
<div>
<div>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/datacaller.png"><img class="alignnone size-full wp-image-828" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/datacaller.png" alt="datacaller" width="195" height="94" /></a></p>
</div>
<pre class="lang:default decode:true">public class DataCaller {

    public static void main(String[] args) throws IOException {

        String resource = "src/main/resources/applicationContext.xml";
        ApplicationContext ac = new FileSystemXmlApplicationContext(resource);
        TCarMapper tcarmapper = (TCarMapper) ac.getBean("mp");

        TCar record = new TCar();
        TCarExample example = new TCarExample();
        example.setDistinct(true);
              
        ArrayList&lt;TCar&gt; result = (ArrayList&lt;TCar&gt;)tcarmapper.selectByExample(example);
        for (TCar r : result) {
            System.out.println(r.getId() + " " +r.getName() + " " + r.getBrand());
        }
    }
}</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 18pt;"><strong>　3. MySQL テーブルからデータを取り出す</strong></span></p>
<div></div>
<div></div>
<div>DataCaller.java メインクラスを実行します。</div>
<div></div>
<div><a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/result_tcar.png"><img class="alignnone size-full wp-image-839" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/result_tcar.png" alt="result_tcar" width="521" height="199" /></a></div>
<div>ちゃんとデータが取れました。</div>
<div></div>
<p>&nbsp;</p>
<div><strong>insert する場合はこんな感じで出来ます↓</strong></div>
<pre class="lang:default decode:true">		TCar record = new TCar();
		record.setId(6);
		record.setName("JULIETA");
		record.setBrand("ALPHA_ROMEO");
		tcarmapper.insert(record);</pre>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/alpa_romeo.png"><img class="alignnone size-full wp-image-868" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/alpa_romeo.png" alt="alpa_romeo" width="491" height="211" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 18pt;"><strong>　おまけ： カスタマイズして SQL を作ってみる</strong></span></p>
<div>TCarExample.java, TCarmapper.xml をカスタマイズすることでオリジナルの SQL を組み立てることができます。ここでは カラムを指定する SQL を足してみましょう。</div>
<div></div>
<div>
<p><strong> (TCarExample.java)</strong></p>
<pre class="lang:default decode:true">     /**
     * original
     */
    public void setColumn(String column) {
        this.column = column;
    }</pre>
<p><strong> </strong></p>
<p><strong>(TCarmapper.xml )</strong></p>
<pre class="lang:default decode:true ">    &lt;!-- 
    &lt;include refid="Base_Column_List" /&gt;
    --&gt;
    
    &lt;!-- original --&gt;
    &lt;if test="column == 'id'"&gt;
      id
    &lt;/if&gt;
    &lt;if test="column == 'name'"&gt;
      name
    &lt;/if&gt;
    &lt;if test="column == 'brand'"&gt;
      brand
    &lt;/if&gt;
    &lt;if test="column == null"&gt;
        &lt;include refid="Base_Column_List" /&gt;
    &lt;/if&gt;
    &lt;!-- original --&gt;</pre>
<p>&nbsp;</p>
<p><strong> (DataCaller )</strong></p>
<pre class="lang:default decode:true">public class DataCaller {

    public static void main(String[] args) throws IOException {

        String resource = "src/main/resources/applicationContext.xml";
        ApplicationContext ac = new FileSystemXmlApplicationContext(resource);
        TCarMapper tcarmapper = (TCarMapper) ac.getBean("mp");
 
        TCarExample example = new TCarExample();
        example.setColumn("name");  //originalメソッドの呼び出し
                
        ArrayList&lt;TCar&gt; result = (ArrayList&lt;TCar&gt;)tcarmapper.selectByExample(example);
        for (TCar r : result) {
            System.out.println(r.getId() + " " +r.getName() + " " + r.getBrand());
        }
    }
}</pre>
<p>&nbsp;</p>
<p>実行します。<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/original_example.png"><img class="alignnone size-full wp-image-877" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/original_example.png" alt="original_example" width="486" height="205" /></a><br />
name カラムだけデータが取れましたね。</p>
<p>いかがでしたか？今回は MyBatis の使い方をサンプルファイルを交えて解説しました。旧 iBatis として知られる MyBatis は昔からの実績や、現在でも大規模な案件で使われる安定性をもっています。個人的には Java のデファクトスタンダード O/Rマッパーとして認知されたら嬉しいなと思っています。</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=712</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyBatis Generator の使い方</title>
		<link>https://cloudear.jp/blog/?p=708</link>
		<comments>https://cloudear.jp/blog/?p=708#comments</comments>
		<pubDate>Sun, 22 Feb 2015 13:41:03 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[O/Rマッパー]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=708</guid>
		<description><![CDATA[みなさんこんにちは、masa です。今日は、前々から書きたいと思っていた Java の O/Rマッパーネタの中で、MyBatis Generator の使い方をご紹介します。 最近は『Spring MVC + MyBat [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは、masa です。今日は、前々から書きたいと思っていた Java の O/Rマッパーネタの中で、<strong>MyBatis Generator</strong> の使い方をご紹介します。<br />
<span id="more-708"></span><br />
最近は『Spring MVC + MyBatis』という IT研修をやっている会社もあるみたいですね。MyBatis は他の O/Rマッパーと違い、オブジェクトと SQL をマッピングしますので、DB の環境に依存することなく SQL の実行を完全に制御したいときにオススメです。</p>
<p>しかし、最初にマッパーやエンティティクラスなどを自分で書くのは非常にしんどいです。そんなとき、手っ取り早く使えるようにファイルを自動生成してくれるのが <strong>MyBatis Genarator</strong> です。とりあえずこれを使って、あとからファイルをカスタマイズして覚えていくのが良いと思います。</p>
<p><span style="color: #0c6fa8; font-size: 12pt;"><strong>今回は Maven 経由で MyBatis を入れます。</strong></span></p>
<p>&nbsp;</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　MyBatis Generator を手っ取り早くインストール</span></strong></p>
<p>最近の Eclipse, NetBeans, IntelliJ ならどれでも Maven はすぐ使えるはずですので、pom.xml に以下を追記しましょう。</p>
<pre class="lang:default decode:true">&lt;project ...&gt;
     ...
     &lt;build&gt;
       ...
       &lt;plugins&gt;
        ...
        &lt;plugin&gt;          //ここから
      	  &lt;groupId&gt;org.mybatis.generator&lt;/groupId&gt;
      	  &lt;artifactId&gt;mybatis-generator-maven-plugin&lt;/artifactId&gt;
          &lt;version&gt;1.3.0&lt;/version&gt;
        &lt;/plugin&gt;         //ここまで　※入れるカテゴリはpluginsの中です
        ...
      &lt;/plugins&gt;
      ...
    &lt;/build&gt;
    ...
  &lt;/project&gt;</pre>
<p>これでプラグインとしてインストールされます。</p>
<p>&nbsp;</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　generatorConfig.xml を配置する<br />
</span></strong></p>
<p>この xml ファイルを元にして各ファイルが自動生成されますのでサンプルをもとに作りましょう。<br />
作る場所はプロジェクトの resources 直下です。</p>
<p><strong>プロジェクト名 &gt; src &gt; main &gt; resources &gt; generatorConfig.xml</strong></p>
<pre class="toolbar:1 lang:default decode:true">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" &gt;
&lt;generatorConfiguration &gt;
  &lt;classPathEntry location="C:\Program Files\MySQL\Connector.J 5.1\mysql-connector-java-5.1.33-bin.jar"/&gt;
  // ↑ MySQLに接続するConnectorJのjarファイルを指定します
  &lt;context id="context1" &gt;
    &lt;jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/car" userId="root" password="password" /&gt;
    // ↑　ローカルのMySQLに接続するパスとDB名、それからMySQLのユーザーIDとパスを指定します
    &lt;javaModelGenerator targetPackage="jp.cloudear.test.db" targetProject="C:\Users\masa\Documents\NetBeansProjects\project\src\main\java\" /&gt;
    &lt;sqlMapGenerator targetPackage="jp.cloudear.test.db" targetProject="C:\Users\masa\Documents\NetBeansProjects\project\src\main\java\" /&gt;
    &lt;javaClientGenerator targetPackage="jp.cloudear.test.db" targetProject="C:\Users\masa\Documents\NetBeansProjects\project\src\main\java\" type="XMLMAPPER" /&gt;
    // ↑  3行すべてに、MyBatisのクラスを入れたいパッケージ名と、プロジェクトのファイルパスを入れてください
    &lt;table schema="student" tableName="classA" &gt;
    // ↑　DB名とテーブル名を入れてください
    &lt;/table&gt;
  &lt;/context&gt;
&lt;/generatorConfiguration&gt;</pre>
<p>&nbsp;</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　いよいよファイルを自動生成する<br />
</span></strong></p>
<p>上で作った xml ファイルを Maven から実行します。</p>
<p>※NetBeans の場合</p>
<p><strong>pom.xml を右クリック &gt; Mavenの実行 &gt; ゴール &gt; ゴール欄に<br />
「mybatis-generator:generate」を入力してOK</strong></p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/02/maven_run.png"><img class="alignnone size-full wp-image-741" src="https://cloudear.jp/blog/wp-content/uploads/2015/02/maven_run.png" alt="maven_run" width="499" height="376" /></a></p>
<p>生成に失敗した場合 MySQL への接続失敗の可能性が高いです。以下の点を確認してみてください。</p>
<ul>
<li>ローカルの MySQL に指定の ID と PW でちゃんと接続できるか</li>
<li>generatorConfig.xml の Connector/Jのパス指定を間違えていないか</li>
<li>generatorConfig.xml の DB名、テーブル名の指定を間違えていないか</li>
</ul>
<p>他の IDE をご使用の方は IDE から Maven ゴールを実行する方法を調べてみてください。</p>
<p>&nbsp;</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　Generator によって生成されたファイルを見てみる</span></strong></p>
<p>生成に成功するとテーブル名が先頭についた以下のような4ファイルが出来ているはずです。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/02/tcar.png"><img class="alignnone size-full wp-image-786" src="https://cloudear.jp/blog/wp-content/uploads/2015/02/tcar.png" alt="tcar" width="193" height="76" /></a></p>
<ol>
<li><strong>エンティティクラス</strong></li>
<li><strong>クエリ条件サンプルクラス</strong></li>
<li><strong>マッパークラス</strong></li>
<li><strong>マッパー設定XMLファイル</strong></li>
</ol>
<p>これらを使えば簡単に DBアクセスのプログラムが作れます。generatorConfig.xml を作るのがちょっとめんどくさいかもしれませんが、仮に手動で4つのファイルを作ろうとすると10倍時間がかかりますｗ　それに比べたらだいぶ楽だと思います。</p>
<p>いかがでしたか？今回は MyBatis を簡単に使い始めるためのファイルを Generator を使って生成してみました。これらのファイルを使って DB操作してみると、カスタマイズして使いこなす一助になると思います。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=708</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
