English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

mybatisフレームワークの入門学習ガイド

MyBatisは、通常のSQLクエリ、ストアドプロシージャー、および高度なマッピングをサポートする優れた持久化レイヤーフレームワークです。MyBatisは、ほぼすべてのJDBCコードとパラメータの手動設定、および結果セットの検索エンブレスリングを排除します。MyBatisは、シンプルなXMLやアノテーションを使用して設定と原始マッピングを行い、インターフェースとJavaのPOJO(Plain Old Java Objects、普通のJavaオブジェクト)をデータベースのレコードにマッピングできます。

1プロジェクトの作成、jarパッケージのインポート

   JavaエンジンまたはWebエンジンを構築することができます。その後、MyBatisのjarパッケージと依存関係パッケージ、そしてデータベースのjarパッケージをインポートします。私はOracleを使用しています。10gデータベース

   mybatis-3.2.2.jar 核心ドライバー

   asm-3.3.1.jar
   cglib-2.2.2.jar
   commons-logging-1.1.1.jar
   javassist-3.17.1-GA.jar
   log4j-1.2.17.jar
   slf4j-api-1.7.5.jar
   slf4j-log4j12-1.7.5.jar
   classes12.jar Oracle10gのjarパッケージ

2.sqlMapConfig.xmlの主要なデータベース接続設定ファイルを作成します

    .srcディレクトリ底下にsqlMapConfig.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>
  <!--データソース、環境の設定-->
  <!--複数の環境を設定できます。テスト時に使用するものと、リリース時に使用するものがあります。-->
  <environments default="test">
    <!--テスト環境-->
    <environment id="test">
      <!--トランザクションの設定: JDBCトランザクション/MANAGEDコンテナに任せたトランザクション-->
      <transactionManager type="JDBC"></transactionManager>
      <!--データソース: POOLEDプール化/UNPOOLED非プール化/JNDIパスワードエンクリピョン、セキュリティが高い-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!--サーバー環境-->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

3.src底下にtestフォルダを作成し、testフォルダ下にTestMybatis.javaファイルを作成します

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * luoggによって作成されました 2017/2/17.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * データベースの接続をテスト
     * 1String型の変数resourceを定義し、先ほど設定したデータベース接続のxmlファイルを指す
     * 2.入力ストリームを作成して、データベースの設定ファイルを読み取る
     * 3.入力ストリームを作成して工場を作成
     * 4.工場をオープン
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
}

.この時点で、セッションが作成されているかどうかのユニットテストを行い、緑色が表示された場合は作成成功です。その次に、データベーステーブルを作成し、SQL文を書きます

4.データベースを作成し、データを書き込みます

CREATE TABLE person(
   ID NUMBER(2),
   NAME VARCHAR2(20),
   sex NUMBER(2),
   age NUMBER(3)
)
-- データを書き込み、下のロックボタンをクリックして、その後+をクリックします
SELECT * FROM person FOR UPDATE

5.在src底下创建com.luogg.domainパッケージ,そのパッケージ下にPerson.javaのエンティティベーンを作成します

package com.luogg.domain;
/**
 * luoggによって作成されました 2017/2/17.
 */
public class Person {
  private String name;
  private int sex;
  private int age;
  private int id;
  @Override
  public String toString() {
    return "Person{" +
        "name='" + name + "\'' +
        "sex=" + sex +
        "age=" + age +
        "id=" + id +
        '}';
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getSex() {
    return sex;
  }
  public void setSex(int sex) {
    this.sex = sex;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

6.データベースと対応するマッピングファイルを作成します。src下にcom.luogg.mapperパッケージを作成し、PersonMapper.xmlファイルを作成します。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--ネームスペースの設定、ネームスペース+ .id はユニークなSQL文の識別子です。-->
<mapper namespace="com.luogg.mapper.PersonMapper">
  <!--すべてのデータをクエリする、パラメータにはid、resultType結果セット、parameterTypeパラメータがあります。-->
  <!--注意: SQL文にコレクションを記入する必要がある場合(例えば、すべてのデータをクエリする場合、Personの結果セットを返す場合)、resultTypeパラメータは直接パスを記入します。+コレクションのタイプ
    例えば: Personコレクションを返す場合は、PersonBeanの場所を記入します。+Person-->
  <select id="find" resultType="com.luogg.domain.Person">
    SELECT * from person
  </select>
</mapper>

7.sqlMapConfig.xmlのメインコンフィギュレーションファイルでマッピングを行い、書いたSQLステートメントのコンフィギュレーションファイルを認識させます。

<?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>
  <!--データソース、環境の設定-->
  <!--複数の環境を設定できます。テスト時に使用するものと、リリース時に使用するものがあります。-->
  <environments default="test">
    <!--テスト環境-->
    <environment id="test">
      <!--トランザクションの設定: JDBCトランザクション/MANAGEDコンテナに任せたトランザクション-->
      <transactionManager type="JDBC"></transactionManager>
      <!--データソース: POOLEDプール化/UNPOOLED非プール化/JNDIパスワードエンクリピョン、セキュリティが高い-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!--サーバー環境-->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <!--マッパーファイルmapper-->
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

8TestMybatis.javaテストクラスに戻り、設定ファイルのsql文にアクセスし、結果セットを返します

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * luoggによって作成されました 2017/2/17.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * データベースの接続をテスト
     * 1String型の変数resourceを定義し、先ほど設定したデータベース接続のxmlファイルを指す
     * 2.入力ストリームを作成して、データベースの設定ファイルを読み取る
     * 3.入力ストリームを作成して工場を作成
     * 4.工場をオープン
     * 5.sessionを通じて設定ファイル内のSQL文にアクセス
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
    //どうやってPersonMapper.xml内のSQL文にアクセスするのでしょうか?63; ネームスペース+ .id
    List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.find");
    System.out.println(list.size());
    for(Person p : list){
      System.out.println(p);
    }
  }
}

実行結果:

以上は、編集者が皆さんに紹介するmybatisフレームワークの初級学習チュートリアルです。皆さんに役立つことを願っています。何かご不明な点があれば、コメントを残してください。編集者は迅速に回答します。また、呐喊チュートリアルサイトへのサポートに感謝しています。

声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーにより自発的に貢献し、自己でアップロードされています。当サイトは所有権を持ちません。また、人工的な編集は行われていません。著作権侵害が疑われる内容があれば、メールでnotice#wまでお知らせください。3codebox.com(メール送信時は、#を@に変更してください。報告を行い、関連する証拠を提供してください。一旦確認が取れましたら、当サイトは直ちに侵害疑いのコンテンツを削除します。)

おすすめ