ホームページ Java &#&チュートリアル Java API開発におけるSQLマッピングにMyBatisを使用する

Java API開発におけるSQLマッピングにMyBatisを使用する

Jun 18, 2023 am 08:45 AM
java sql mybatis

Java API 開発における SQL マッピングに MyBatis を使用する

Java Web 開発では、多くの場合、データの読み取りと書き込みのためにデータベース API を呼び出す必要があります。ただし、データ操作に JDBC (Java Database Connectivity) API を直接使用するのは非常に面倒で、手動で SQL ステートメントを作成し、データベース接続や結果セットなどを処理する必要があります。これらの些細なタスクは、開発者の作業効率を大幅に低下させるだけでなく、コードの可読性と保守性をさらに困難にします。したがって、これらの問題を解決するには、優れた ORM (オブジェクト リレーショナル マッピング) フレームワークが必要です。

MyBatis は、開発者がわずかな構成でデータベース操作を簡単かつ迅速に実行できるようにする優れた ORM フレームワークです。次の記事では、Java API 開発における SQL マッピングに MyBatis を使用する基本操作を紹介します。

1. MyBatis の基本構成

MyBatis を開発に使用する前に、まず MyBatis の基本構成を理解する必要があります。まず、MyBatis 関連の依存関係をプロジェクトの pom.xml ファイルに追加する必要があります:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>

次に、MyBatis を定義するために src/main/resources ディレクトリに mybatis-config.xml 構成ファイルを作成する必要があります。構成情報。このうち最も重要なのはデータソースの設定で、次のように設定できます:

<configuration>
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mybatis/mapper/PersonMapper.xml"/>
    </mappers>
</configuration>

上記の設定により、データベースの接続情報とデータの読み込み先を設定します。マッピングファイル。このうち、mapper タグは、どの SQL マッピング ファイルを使用するかを指定します。ここでは、例として PersonMapper.xml マッピング ファイルを使用します。

2. MyBatis のマッピング ファイルを定義する

MyBatis では、SQL ステートメントの記述は XML ファイルを通じて実装されます。データ テーブルと Java エンティティ クラスおよび関連する SQL ステートメントの間のマッピング情報を保存するには、マッピング ファイル (PersonMapper.xml など) を定義する必要があります。

次は例です。id、name、age の 3 つの属性を含む person エンティティ クラスがあるとします。これをデータベース内の person テーブルにマップする必要があります。次に、次の SQL マッピング ステートメントを PersonMapper.xml ファイルに定義できます。

<mapper namespace="com.example.mapper.PersonMapper">
    <select id="selectPersonById" parameterType="int" resultType="com.example.model.Person">
        SELECT * FROM person WHERE id = #{id}
    </select>
    <insert id="insertPerson" parameterType="com.example.model.Person">
        INSERT INTO person (id, name, age) VALUES (#{id}, #{name}, #{age})
    </insert>
    <delete id="deletePersonById" parameterType="int">
        DELETE FROM person WHERE id=#{id}
    </delete>
    <update id="updatePerson" parameterType="com.example.model.Person">
        UPDATE person SET name=#{name}, age=#{age} WHERE id=#{id}
    </update>
</mapper>

上記のコードでは、person テーブルのクエリ、挿入、削除、更新に対応する 4 つの SQL マッピング ステートメントを定義します。データ。各 SQL マッピング ステートメントでは、SQL ステートメントのタイプ (選択、挿入、削除、更新など) を指定し、SQL ステートメントに対応するメソッド名、パラメーターのタイプ、および戻り値のタイプを示す必要があります。

3. 単純なデータ操作には MyBatis を使用します

MyBatis 構成ファイルと SQL マッピング ファイルを定義した後、Java コードで対応するメソッドを呼び出して、対応するメソッドを実装できます。操作された。 ID に基づいて Person オブジェクトをクエリする例を次に示します。

1) Person クラスを定義します。

ID、名前、年齢の 3 つの属性を含む Person エンティティ クラスがあるとします。

public class Person {
    private int id;
    private String name;
    private int age;
    // getters and setters
}

2) PersonMapper インターフェイスを定義します。

以下に示すように、PersonMapper インターフェイスでは、person テーブルを追加、削除、変更、クエリするメソッドを定義できます。

public interface PersonMapper {
    Person selectPersonById(int id);
    void insertPerson(Person person);
    void deletePersonById(int id);
    void updatePerson(Person person);
}

3) データ操作には MyBatis を使用します

Java コードでは、MyBatis の SqlSessionFactory クラスを使用して SQL セッション ファクトリ オブジェクトを作成できます。このオブジェクトを通じて SQL セッション オブジェクトを取得し、そのオブジェクトのメソッドを呼び出してデータ操作を実行できます。以下は、ID に基づいて Person オブジェクトをクエリする簡単な例です。

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
PersonMapper personMapper = session.getMapper(PersonMapper.class);
Person person = personMapper.selectPersonById(1);
System.out.println(person.getName());

上記のコードでは、SqlSessionFactoryBuilder クラスを使用して、mybatis-config.xml ファイルから SqlSessionFactory オブジェクトを作成します。次に、SqlSessionFactory オブジェクトを通じて SqlSession オブジェクトを作成し、オブジェクトの getMapper メソッドを通じて PersonMapper プロキシ クラス オブジェクトを取得しました。最後に、プロキシ クラスの selectPersonById メソッドを呼び出し、ID 1 の Person オブジェクトを取得し、出力を出力しました。とても簡単なことではありませんか?

4. 概要

MyBatis は非常に優れた ORM フレームワークであり、そのマッピング ファイルを通じて SQL マッピングを簡単かつ迅速に実行できます。この記事では、Java API開発におけるデータ操作を行う皆様のお役に立てればと思い、MyBatisの基本的な構成と使い方を紹介します。もちろん、MyBatis を使用した他の高度な機能や最適化テクニックも多数あります。これらについては、次の記事で紹介しますので、ご期待ください。

以上がJava API開発におけるSQLマッピングにMyBatisを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerを使用してKubernetesにJavaアプリケーションを展開します Dockerを使用してKubernetesにJavaアプリケーションを展開します Aug 08, 2025 pm 02:45 PM

コンテナ化されたJavaアプリケーション:DockerFileを作成し、Eclipse-Temurin:17-jre-Alpineなどの基本的な画像を使用し、JARファイルをコピーしてスタートアップコマンドを定義し、DockerBuildを介して画像を作成し、Dockerrunでローカルに実行します。 2。画像をコンテナレジストリに押します:Dockertagを使用して画像をマークし、DockerHubやその他のレジストリにプッシュします。最初にdockerloginにログインする必要があります。 3. Kubernetesへの展開:展開を書き込み展開を定義し、レプリカの数、コンテナ画像、リソース制限の数を設定し、service.yamlを作成して作成して作成します

JavaにシンプルなTCPクライアントを実装する方法は? JavaにシンプルなTCPクライアントを実装する方法は? Aug 08, 2025 pm 03:56 PM

importjava.ioandjava.net.socketfori/oandsocketCommunication.2.CreateAsocketObjectToConnectTotheServerusingHostNameandport.3.USEPRINTWRITERTOSENDDATAVIAOUTSTREAMANDBUFFEREDEDEDEDEDEDEREDEREDERTOREADEREADSERVERRESPONSESSTREAM.

SQLで列の合計を見つける方法は? SQLで列の合計を見つける方法は? Aug 08, 2025 pm 05:54 PM

tofindthesumofacolumninsql、usethesum()function、それはnumersolumn whienignoringnulls;

SQLのAlter Tableステートメントは何ですか? SQLのAlter Tableステートメントは何ですか? Aug 08, 2025 pm 02:13 PM

thealtertabletatementisusedtomodifyAnexistingtable’sstructurewithoutrecreatingit; 1.addanewcolumnusingadddcolumn; 2.dopacolumn withdropcolumn、whialsodeletesitsdata; 3.renameacolumnusingrenamecolumn、withsyntaxconsistenmysql、sqlserver、およびpostgresql; 4

Javaで時間ループを使用する方法 Javaで時間ループを使用する方法 Aug 08, 2025 pm 04:04 PM

awhileloopinjavarepeatedecutesexecuteslongastheconditionistrue;

修正:Windowsアップデートはインストールに失敗しました 修正:Windowsアップデートはインストールに失敗しました Aug 08, 2025 pm 04:16 PM

runthewindowsupdateTroubleshoterviasettings> update&security> troubleShoottoAutoMonissues.2.resetwindowsupDateComponentsは、related -distributionandCatrot2Folders、restartingtherserviceStocleを削除します

Javaオブジェクトのシリアル化のプロセスは何ですか? Javaオブジェクトのシリアル化のプロセスは何ですか? Aug 08, 2025 pm 04:03 PM

JavaSerializationConvertSanobject'sStateIntoAbyTeStreamForStorageorTransmission、およびseRializationは、objectfromthatstream.1.1.toenablesimementtheRializable Interface.2.usobjectputStreamToseRializeAnobject、Savin

SQLでフィルタリングされたインデックスを作成する方法は? SQLでフィルタリングされたインデックスを作成する方法は? Aug 08, 2025 pm 05:31 PM

AfilteredIndexinsQlServerimpRovesPerformanceByIndexinlyasubsetofRowsusawhereClause.2.itmustbeanOnonededexdexcreatedOnatable、sudexingingactiveuserswithcreatenonclusteredindexix_users_users_activeemailonusers(メール)

See all articles