Java API開発における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 サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

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

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

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

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

awhileloopinjavarepeatedecutesexecuteslongastheconditionistrue;

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

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

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