2018年06月03日

Eclipse MyBatisの導入方法と使い方

※2018/11/18更新:各ソフトのバージョンを最新にして再編集しました。

環境
 ・Eclipse 4.8
 ・SQL Server 2017 Express

■SQL Server 2017 Expressの準備
 ・「SQL Server 2017 構成マネージャー」から接続先ポートをTPCポート1433に固定にしておく。
 ・ユーザーを事前に作成し、JDBCでテーブルなどへ接続可能にしておく。

■Eclipseからプロジェクトを作成。ここでは「MyProject」とする。
以下のjarをプロジェクトのビルド・パスへ追加する。
(1)JDBCドライバ (サイト)
 今回は「Microsoft JDBC Driver 7.0 for SQL Server 」のmssql-jdbc-7.0.0.jre8.jarを使用。
(2)my Batis (サイト)
 mybatis-3.4.6.jar を公式サイトからダウンロード。

■接続先のデータベースには次のテーブルがあるとする。
CREATE TABLE UserTable(
    userid int PRIMARY KEY,
    name nvarchar(255) NULL,
    address nvarchar(255) NULL,
    birthday datetime2(7) NULL);
■Eclipse プラグインのインストール
ヘルプ>Eclipseマーケットプレース>「MyBatis Generator」で検索し、画面の指示に沿ってインストール。(MyBatis Generator 1.3.7)

■generatorConfig.xmlの自動生成
メニューバー>ファイル>新規>その他>MyBatis>「MyBatis Generator Configuration File」を選択。XMLファイルが生成される。

■generatorConfig.xmlの編集
 サーバ名、DB名、プロジェクト名等を環境に合わせて書き換える。
 (JDBCがSQL Serverの場合はjarファイルへのパスを正しく設定する。)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<classPathEntry location="D:\(jarファイルへのパス)\mssql-jdbc-7.0.0.jre8.jar" />
<context id="context1">
<jdbcConnection connectionURL="jdbc:sqlserver://SERVERNAME\\SQLEXPRESS:1433;database=MYDATABASE;"
driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
userId="???" password="???" />
<javaModelGenerator targetPackage="jp.example.entity"
targetProject="MyProject/src" />
<sqlMapGenerator targetPackage="jp.example.entity.dao"
targetProject="MyProject/src" />
<javaClientGenerator targetPackage="jp.example.entity.dao"
targetProject="MyProject/src" type="XMLMAPPER" />
<table schema="dbo" tableName="UserTable" />
</context>
</generatorConfiguration>
■generatorConfig.xmlを右クリックして、メニューから「実行」→「Run MyBatis Generator」を選択。
ファイルが自動生成される。

■ファイル階層
パッケージエクスプローラを右クリックし、「resource」という名前で「ソースフォルダ」を作る。
同様に「mapper」のソースフォルダを作る。以下のようなフォルダ構成にする。
プロジェクト名
├「src」フォルダ
│ ├ jp.example.entityパッケージ
│ │ │Usertable.java
│ │ └UsertableExample.java
│ └ jp.example.entity.daoパッケージ
│   └UsertableMapper.java
├「resource」フォルダ
│ ├generatorConfig.xml
│ └mybatis-config.xml      //この後、自分で作るファイル
└「mapper」フォルダ
  ├UsertableMapper.xml      //自動生成されたxmlファイルをここに移動
  └VUsertableMapper.xml    //(メソッドを自作する場合、既存のXMLに追加も可能だが、分かり易いようにファイルを分ける)
■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>
  <properties>
     <property name="mapper.url" value="./mapper"/>
  </properties>
  <!--settings>
    <setting name="logImpl" value="LOG4J"/>
  </settings-->
  <environments default="release">
    <environment id="release">
      <transactionManager type="JDBC" />
        <dataSource type="POOLED">
          <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
          <property name="url" value="jdbc:sqlserver://SERVERNAME\\SQLEXPRESS:1433;database=MYDATABASE;" />
          <!--property name="username" value="${username}"/-->
          <!--property name="password" value="${password}"/-->
          <property name="username" value="???" />
          <property name="password" value="???" />
        </dataSource>
      </environment>
    </environments>
    <mappers>
    <mapper url="file:${mapper.url}/UsertableMapper.xml" />
<!-- ここにXMLを追加 -->
    <!-- mapper url="file:${mapper.url}/VUsertableMapper.xml" /-->
  </mappers>
</configuration>
■自作のSQLの追加方法
UsertableMapper.javaにメッソド追加。VUsertableMapper.xmlに定義を書く。
public class MyClass {
    public static void main(String... args) {
        try (Reader r = Resources.getResourceAsReader("mybatis-config.xml")) {
            Properties properties = new Properties();
            // mybatis-config.xmlでプレースホルダにしておいて、ここで値を入れることも可能
            // properties.setProperty("username", "???????");
            // properties.setProperty("password", "???????");
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(r, properties);
            try (SqlSession ss = ssf.openSession()) {
                // Mapperインスタンス作成
                UsertableMapper tmap = ss.getMapper(UsertableMapper.class);
                // Exampleインスタンス作成
                UsertableExample texp = new UsertableExample();
              
                // ケース1:条件を指定してレコード取得
                // 「name='青木'」または「address='大阪府'」のレコード抽出
                texp.createCriteria().andNameEqualTo("青木");
                texp.or().andAddressEqualTo("大阪府");
                List<Usertable> tlist = tmap.selectByExample(texp);
                for (Usertable cur : tlist) {
                    System.out.println(cur.getName());
                }
                // ケース2:レコード挿入・更新
                int newUserId = 9999;
                String newName = "新しい名前";
                Usertable rec = new Usertable();
                texp = new UsertableExample();
                texp.createCriteria().andUseridEqualTo(newUserId);
                // 既存レコードチェック
                if (tmap.countByExample(texp) > 0) {
                    // アップデート
                    rec.setName(newName);
                    tmap.updateByExampleSelective(rec, texp);
                    // update〜SelectiveメソッドはUsertableに代入されたカラムのみアップデートする。
                } else {
                    // インサート
                    rec.setUserid(newUserId);
                    rec.setName(newName);
                    tmap.insert(rec);
                }
                // コミット
                ss.commit();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
タグ:JAVA Eclipse
posted by Hiro at 12:06| Comment(9) | プログラム
この記事へのコメント
SketchUp2014テ」窶堋キテ」ニ陳ェテ」窶堋「テ」ニ陳ォテ」窶堋ュテ」ニ陳シテァ窶敖ィV-Ray2.00.24261,テ」ニ停愿」ニ陳シテ」ニ陳�テ」ニ塚愿」ニ槌津」ニ停ー2002テ」ニ停「テ」ニ陳ォテ」ニ陳静」ニ陳シテ」窶堋クテ」ニ陳ァテ」ニ陳ウPCテ」窶堋イテ」ニ陳シテ」ニ陳テァ窶楪。テヲ窶凪┐テ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー
Posted by kaarwine at 2022年07月02日 02:15
1001テ」ニ停愿」ニ槌津」ニ塚�テ」ニ停氾」ニ陳ュテ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッテ」ニ停「テ」ニ陳ェテ」ニ陳シ127,downloadtafsiralmisbahquraishshihabpdf,テ」ニ椎セテ」ニ停ーテ」ニ陳ォテ」ニ停ーテ」窶堋・テ」ニ陳ッテヲナ督ャテ」窶堋キテ」ニ陳ウテ」ニ陳湘」ニ陳ゥティツェナセテァ窶楪。テヲ窶凪┐64 http://intranet.canadabusiness.ca/?URL=https://colab.research.google.com/drive/1CfP0YxZOSfFv_F0qreEAOCL6yqQCOguo
60a1537d4d natuhy
Posted by natuhy at 2022年08月07日 08:03
テ」ニ停テ」ニ陳ォテ」窶堋ーティツェナセテ」ツ�ツョティツオツ、テ」ツ�ツ。テ」窶堡津」窶壺愿」ツ�ツョテ・ツ青催・窶ーツ催」ツ�ツョテヲナ督ャテ」ツ�ツョPDFテ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー,downloadmanaqibjawahirulmaanipdf11,Nokia 16162テ」窶堋ウテ」ニ陳シテ」ニ停ーティツィヒ�テァツョ窶氾ヲツゥナクテ」ツ�ツョテ」ニ陳ュテ」ニ槌津」窶堋ッテ」窶壺凖ィツァツ」テゥ邃「ツ、テ」ツ≫┐テ」窶壺ケ|テ」ニ停凖」ニ槌津」ニ塚�テ」窶壺凖ヲ窶コツエテヲ窶督ー
60a1537d4d giseberw
https://colab.research.google.com/drive/1hn20LR8kCPikQX0JlKiY43IyguS-iDku
https://colab.research.google.com/drive/1n_5IuHkCc8-_lKY7H1o-71SbKOyZRZAw
https://colab.research.google.com/drive/1YZBEDapKFagbCo26kHakxwC7UGdNbQg5
https://colab.research.google.com/drive/1ykdEK5uin6v0dGJi66d8eO8G8Q_iAJMR
https://colab.research.google.com/drive/1XVr1iFLSKq9FqD73840EquhDltnh_mPE


https://gmbgenius.com/contentgenius/hello-world/
Posted by giseberw at 2022年08月07日 09:33
DIYeGPU-テ」窶堋サテ」ニ槌津」ニ塚�テ」窶堋「テ」ニ槌津」ニ停�,テァツソツシxp2.5テ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッfull.rar,テ」ツ�ツセテ」ツ�ツィテ」窶壺堙」ツ�ツェテ」窶堋「テ」窶堋、テ」窶堋ウテ」ニ陳ウkeygen
60a1537d4d callder
https://colab.research.google.com/drive/1l0oNODsv0q8m2rEtBsedwbUQhNDzrKbz
https://colab.research.google.com/drive/1Y8z08KWwkzNJDAfxmxIaLXyXtEvc0uSH
https://colab.research.google.com/drive/1LoTqWSKWAUdCOilvp6zjQ55KDBDmO0Td
https://colab.research.google.com/drive/1bauVMGqQtgCuWUWL2rcyFHLOoIm94EoW
https://colab.research.google.com/drive/16Ep5VTspDUONZNKx7nnnGx9VHUGGD07m


https://theturningpoint.info/leandiagram-lean-canvas/
Posted by callder at 2022年08月07日 11:01
テ」窶堋ェテ」ニ陳テ」ニ停ケテ」窶堋ケテ」ニ停「テ」窶堋」テ」窶堋「テ・ツソナ禿ァツュ窶敕」窶堋ウテ」ニ陳シテ」ニ停ーkeygenテ」窶堋クテ」窶堋ァテ」ニ陳催」ニ陳ャテ」ニ陳シテ」窶堋ソテ」ニ陳シ,binkregisterframebuffers 8 53,テ」窶堋ィテ」ニ陳ウテ」ニ停テ」窶堋」テ」ニ陳ゥテ」ニ陳ウテヲヒ慊テァ窶敖サhd1080pテ」ニ停禿」ニ陳ォテ」ニ陳シテ」ニ陳ャテ」窶堋、テ」窶堋ソテ」ニ椎クテ」ニ陳ォテヲヒ慊テァ窶敖サテ」窶堋ェテ」ニ陳ウテ」ニ陳ゥテ」窶堋、テ」ニ陳ウ
60a1537d4d xanrafa
https://colab.research.google.com/drive/1oh0Vrl4PmORUjXeiy2ciaMtK22_tReFu
https://colab.research.google.com/drive/1w2sY-9MOlJRg79vLDXiUgURfpecBNI4V
https://colab.research.google.com/drive/1BJT4_qK5YwUy4F9Sh7UIkTPqLNiXk9RJ
https://colab.research.google.com/drive/1lnc-w1Hj86S5iBzJ_gXLmarCN9aT5XC-
https://colab.research.google.com/drive/1eq8dmB6TblWy1HGfBtb2s33lYVSk8xh9


http://www.grindd.com/blog/2014/12/android-5-0-the-good-the-bad-the-ugly/
Posted by xanrafa at 2022年08月07日 18:35
Lazy NezumiProテ」窶壺凖ァ窶楪。テヲ窶凪┐テ」ツ�ツァテ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー,Dhano Dhabewali1080pテ」ニ停「テ」ニ陳ォテ」ニ陳テ」ニ陳シテ」ニ停愿」ニ陳シテ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー,Bizagiテ」ニ停氾」ニ陳ュテ」窶堋サテ」窶堋ケテ」ニ陳「テ」ニ停。テ」ニ陳ゥテ」ニ陳シテ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ
60a1537d4d adoami
https://colab.research.google.com/drive/1Cjyidfabj1CuXbHjs8gzbwB2DRsEgMDk
https://colab.research.google.com/drive/1xwl6zdSf8IoetJMdXuvajGZwtUKS8YRa
https://colab.research.google.com/drive/15WdqSbnVAOdpGWTvB_TalO8ZsM13bi3h
https://colab.research.google.com/drive/1wFJ_I0WmRcH5uRo-lunPlYS8Z5Zd40uA
https://colab.research.google.com/drive/17y7Y2ao62AbTF6O_AFHw4iy8bwvlDiv0


https://www.australiabeststudy.cz/australie-a-prace-pavel-se-zivi-hledanim-zlata/zivot-v-australii/
Posted by adoami at 2022年08月07日 19:48
UFS Explorer Professional Recoveryv7.19.6テ」ニ陳敕」ニ陳シテ」窶堋ソテ」ニ停禿」ニ陳ォテ」窶堋キテ」ニ陳ェテ」窶堋「テ」ニ陳ォテ」窶堋ュテ」ニ陳シkeygen,KumpulanAplikasiテ」ニ陳湘」ニ槌津」窶堋ッテ」ニ停佚」窶堋ケテ」ニ陳ッテ」ニ陳シテ」ニ停ーFacebookl,Lexmark X422 Windows7テ」窶堋ォテ」ニ陳。テ」ニ陳ゥテ」ニ停ーテ」ニ陳ゥテ」窶堋、テ」ニ陳静」ニ陳シ22l
60a1537d4d hertlat
https://colab.research.google.com/drive/17Q4k-uinrEP-2BYKs4fJ42OeeMrH0F3M
https://colab.research.google.com/drive/1VF9pjtcAF73T-6g_kgQOYPlVTFfIA0zL
https://colab.research.google.com/drive/1OvCPuAX14YmL6IPxl3ecVidu-Bt7zsss
https://colab.research.google.com/drive/1LS5PZZfK4W90IjVC873JuijXLD2gFgWA
https://colab.research.google.com/drive/10TaJgG7JJOvXOZpQLCL7Zf3EMRAOvvGu


https://www.aerialdancing.com/blog/fall-in-love-with-rope/
Posted by hertlat at 2022年08月08日 00:39
xforce keygen32テ」ニ停愿」ニ槌津」ニ塚�テ」ツ�ツセテ」ツ�ナクテ」ツ�ツッ64テ」ニ停愿」ニ槌津」ニ塚�テ」ニ陳静」ニ陳シテ」窶堋クテ」ニ陳ァテ」ニ陳ウテ」ツ�ツョAutoCADLT2014テ」窶堋ュテ」ニ陳シ,pokoli szomszedok 2 magyar letoltese ingyenbfdcm,テ」ニ停ぎテ」ニ陳ウテ」ツ�ツィテ」ニ停。テ」窶堋、テ」ニ停禿」ニ陳静」ニ槌津」窶堋ッテ」ニ塚�テ」ニ陳ェテ」ニ陳ュテ」窶堋クテ」ニ陳シテヲ竄ャツ・テヲツオツ�
74cd785c74 chrikatu
https://kittycracks.com/
https://installzip.com/
https://freecollection.net/
https://free4windows.com/
https://filescracks.net/


http://www.pororo.nl/ouders/
Posted by chrikatu at 2022年09月23日 04:48
Amok Krystian Bala Pdf,Telecharger Gratuitement Civil 3D 2018 Francais Avec Crack64テ」ニ停愿」ニ槌津」ニ塚�,Lg T385 Android2.0テ」窶堋、テ」ニ陳ウテ」窶堋ケテ」ニ塚�テ」ニ陳シテ」ニ陳ォテ」ニ停「テ」窶堋。テ」ニ陳シテ」ニ陳テ」窶堋ヲテ」窶堋ァテ」窶堋「
74cd785c74 nicohea
https://thecracks.net/
https://netcracks.org/
https://kittycracks.com/
https://installzip.com/
https://freecollection.net/


https://www.mandymagro.com/apps/blog/show/48872543-ally-blake-awesome-aussie-author-&fw_comments_order=ASC&siteId=141264951&locale=en-AU
Posted by nicohea at 2022年09月24日 10:56
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: