マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】MyBatis

【OSS情報アーカイブ】MyBatis

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「MyBatis」とは

「MyBatis」基本情報

■概要

MyBatis(マイバティス)とは、JavaのDBアクセス用OSSライブラリでO/Rマッピングツールです。

■基本説明

MyBatisは、「オブジェクト指向言語におけるオブジェクト」と「データベースに関する処理」を対応づけてソフトウェア開発の生産性を効率化するためのツールです。

XML記述子(XMLディスクリプタ)または注釈(アノテーション)を使用して、「オブジェクト」を「カスタムSQL」「ストアドプロシージャ」「SQLステートメント」とシンプルに結合(マッピング)できます。

MyBatis SQLマッパーフレームワークにより、オブジェクト指向アプリケーション開発において、リレーショナルデータベースに関する処理を容易化できます。

■主要開発元

MyBatisは、MyBatis Teamを中心として開発が進められています。

■オフィシャルサイト情報

オフィシャルサイト

→MyBatis

ライセンス情報

MyBatisのライセンスは「Apache License Version 2.0」です。

詳細について、こちらを参照ください。
→GitHub →mybatis/mybatis-3 →LICENSE

ダウンロード

→GitHub →mybatis/mybatis-3 →Releases

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Hibernate」「Reladomo」など。

「MyBatis」のO/Rマッパー機能

■O/Rマッパー機能

MyBatisは「O/Rマッパー」として機能します。

「O/Rマッパー」とは

「O/Rマッパー」とはO/Rマッピングを実現するためのライブラリやフレームワークを指します。

「O/Rマッピング」とは

「O/Rマッピング」とは、「オブジェクト指向言語におけるオブジェクト」と「リレーショナルデータベースにおけるレコード」をリンクさせる(対応付ける)ことを意味します。

O/Rマッピングにより、リレーショナルデータベースのレコードをオブジェクトとして直感的に扱えるようになるため、リレーショナルデータベースへのアクセス処理に関するコーディング量を削減できます。

■SQL文とオブジェクトをマッピング

MyBatisは、一般的なO/Rマッパーのようにデータベースのテーブル構造とオブジェクトをマッピングするのではなく、「SQL文とオブジェクトをマッピングする」点が特徴です。

SQLをXMLファイルに記述し、Javaのインターフェースのメソッドを実行すると、メソッド名に対応するSQLが実行されます。

MyBatisは、単純なXMLまたは注釈を使用して「Mapインタフェース」および「Java POJO(Plain Old Java Objects)」をデータベースレコードにマッピングできます。

ほとんどすべてのJDBCコードとパラメータの手動設定および結果の検索を排除できます。

「MyBatis」の永続化機能

「MyBatis」の永続化機能

■永続化機能

MyBatisは永続化機能を提供します。

「永続化」とは、プログラム終了後もデータが失われないようにデータをファイルやデータベースなどに保存することを指します。

■永続化が必要となる理由

オブジェクト指向プログラミングでは、あるクラスのインスタンスを生成し、メソッドを呼び出すことで特定の処理を実行します。

処理を実行するにあたって、各処理の記録をデータとして長期的に記録する必要があります。しかし、インスタンスは主記憶装置(メインメモリ)上に生成されるため、プログラムの終了とともにそのデータは消失してしまいます。

そのため、プログラムで実行された処理結果データをデータベースに保存する処理(永続化)が必要となります。

動的SQL作成ツール「MyBatis generator」

動的SQL作成ツール「MyBatis generator」

■概要

「MyBatis generator」は、MyBatis公式の動的SQL作成ツールで、動的SQLの引数の状態に応じて異なるSQLを生成します。

実行時にデータベースからテーブルの情報を取得し、共通的なSQLやアクセスクラスを自動生成します。テーブルごとに「SQLMap」「マッパークラス」「モデルクラス」を作成します。

これにより、データベーステーブルとやり取りするために、オブジェクトやコンフィグファイルを設定する手間を軽減できます。

→MyBatis →MyBatis Generator

→GitHub →mybatis/generator

■自動生成対象項目

テーブル構造と一致するJavaオブジェクト

「テーブルの主キーと一致するクラス」や「テーブルのBLOBフィールドを含めるクラス」など、「テーブル構造と一致するJavaオブジェクト」を生成できます。

CRUD関数用SQL

「MyBatis generator」は、構成内の各テーブルに対してシンプルなCRUD関数用のSQLを生成します。

Javaクライアントクラス

Javaクライアントクラスも生成できます。

MyBatis 3.x用:
・マッパーインフラストラクチャーと連携するマッパーインターフェース

iBATIS 2.x用:
・Springフレームワーク準拠DAO
・iBATIS SQLマッピングAPIのみを使用するDAO
・iBATIS DAOフレームワークに準拠したDAO

■継続的インテグレーション連携

「MyBatis generator」は、継続的ビルド環境で「Ant」や「Maven」と連携して利用できます。

■Eclipse用プラグイン

Eclipse用プラグインが用意されています。

→Eclipse →marketplace →MyBatis Generator

スキーマ移行ツール「MyBatis Migrations」

スキーマ移行ツール「MyBatis Migrations」

■概要

「MyBatis Migrations」は、コマンドラインデータベース移行ツールです。

→MyBatis →MyBatis Migrations

→GitHub →mybatis/migrations

■ツールの開発目標

「MyBatis Migrations」は、次のことを目指して開発されています。

・新規または既存の任意のデータベースを操作
・バージョン管理システムを活用
・チームが独自に作業できる
・管理しやすい競合を許可
・「前方移行」と「後方移行」を可能にする
・データベースの現在の状態を可視化
・アクセス権にも柔軟に対応
・あらゆる方法論に対応 など

移行用Mavenプラグイン「Migration Maven plugin」

移行用Mavenプラグイン「Migration Maven plugin」

■概要

「Migration Maven plugin」は、Mavenライフサイクルに「MyBatis Migrations」を統合することを目的としたApache Mavenプラグインです。

→MyBatis →MyBatis Migrations Maven plugin

→GitHub →mybatis/migrations-maven-plugin

■「Maven」とは

「Apache Maven」はJava用プロジェクト管理ツールです。

プロジェクトオブジェクトモデル(POM)の概念に基づいて、中心的情報からプロジェクトの「ビルド」「レポート作成」「ドキュメント」を管理できます。

→Apache Maven

MyBatis用Eclipseプラグイン「MyBatipse」

MyBatis用Eclipseプラグイン「MyBatipse」

■概要

「MyBatipse」は、Eclipseに「MyBatis SQL Mapper Framework」のサポートを追加するプラグインです。

このプラグインを使用すると、EclipseでMyBatisの関連ファイルを編集する場合に、入力サポートや検証サポートを利用できます。

→GitHub →mybatis/mybatipse

■主な機能

・自動補完機能
・外部参照サポート機能
・検証機能
・マッパー宣言ビュー機能
・クイックアシスト機能
・リファクタリング名称変更機能
・XMLマッパーファイル作成ウィザード機能
・アノテーション機能
・型エイリアス機能 など

Scala用SQLマッパー「MyBatis Scala Adapter」

Scala用SQLマッパー「MyBatis Scala Adapter」

■概要

「MyBatis Scala Adapter」はScala用のMyBatisアダプターで、軽量ラッパーとして機能します。

洗練されたScala構文とその型システムを利用して、100%のフレームワーク機能をサポートします。「Scalaコレクション」と「Scala Bean」を使用できます。

また、文字列を連結することなく、非常に明確な構文を使用して、すべての動的SQLコードを直接Scalaコードに定義できます。

→MyBatis →mybatis-scala-parent

→GitHub →mybatis/scala

動的SQL文生成フレームワーク「MyBatis Dynamic SQL」

動的SQL文生成フレームワーク「MyBatis Dynamic SQL」

■概要

「MyBatis Dynamic SQL」は、動的SQL文を生成するためのフレームワークで、型安全なSQLテンプレートライブラリとして利用できます。

このライブラリは、MyBatisまたはSpringで使用するためにフォーマットされた完全な「DELETE」「INSERT」「SELECT」「UPDATE」の各ステートメントを生成します。

「MyBatisが直接使用できるステートメントとそれに対応する一連のパラメータを生成する」というのが最も一般的な使用方法です。

→MyBatis →MyBatis Dynamic SQL

→GitHub →mybatis/mybatis-dynamic-sql

■MyBatis Generator生成コードを改善

「MyBatis Dynamic SQL」は「MyBatis Generator」によって生成されたコードを改善するために開発されましたが、ほぼセットアップを必要とせずにスタンドアロンでも使用できます。

■SQLステートメント生成

ライブラリは以下のタイプのSQLステートメントを生成します。

・DELETEステートメント—WHERE句を使用
・INSERTステートメント—完全、選択的
・SELECTステートメント—列リスト、WHERE句、group by句、結合、共用体、order by句
・UPDATEステートメント—完全、選択的

■主な特徴

型保証

可能な限り、パラメータの型がデータベースの列の型と一致するようにします。

柔軟

「and」「or」「ネスト条件」の任意の組み合わせを使用してステートメントを作成します。

拡張可能

他のフレームワーク用のステートメントを生成するように拡張できます。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。