マジセミドライブ

ウェビナー関連のニュースや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」「ネスト条件」の任意の組み合わせを使用してステートメントを作成します。

拡張可能

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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。