Java API開発におけるCRUD処理にMyBatis-Plusを使用する

WBOY
リリース: 2023-06-18 08:03:08
オリジナル
1438 人が閲覧しました

Web サイトの規模が拡大し続けるにつれて、Java 開発者は大量のデータベース操作を処理する必要がますます高まっています。このような状況に直面して、開発に従来の SQL ステートメントを使用すると、コードが重複して冗長になることが容易に発生します。開発にフレームワークを使用すると、これらの問題を回避できます。中でもMyBatis-PlusはJava API開発におけるCRUD処理に利用できるフレームワークとして非常に人気があります。

この記事では、MyBatis-Plus を CRUD 処理に使用する方法を詳しく説明します。具体的には、単一テーブル CRUD および複数テーブル CRUD 処理に MyBatis-Plus を使用する方法について説明します。

単一テーブル CRUD

単一テーブル CRUD 処理では、最初にエンティティ クラスを作成し、次にそのエンティティ クラスをデータベース テーブルにマップする必要があります。次に、MyBatis-Plus が提供するメソッドを CRUD 処理に使用できます。

エンティティ クラスの作成

まず、操作に必要なデータを保存するためのエンティティ クラスを作成する必要があります。このエンティティ クラスには通常、いくつかの基本属性といくつかのゲッター メソッドとセッター メソッドが含まれています。以下に例を示します。

@Data
@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
ログイン後にコピー

このエンティティ クラスでは、MyBatis-Plus アノテーションを使用してテーブル名と主キーをマップします。このうち、@TableName("user") アノテーションは、このエンティティ クラスに対応するテーブル名が user であることを示し、@TableId(type = IdType.AUTO) ) アノテーション 主キーの自動インクリメントタイプを表します。

MyBatis-Plus を CRUD 処理に使用する

次に、MyBatis-Plus が提供する DAO インターフェイスを CRUD 処理に使用できます。 MyBatis-Plus は、insert()updateById()selectById() などの一般的に使用される CRUD メソッドをいくつか提供します。

@Repository
public interface UserDao extends BaseMapper<User> {
}
ログイン後にコピー

上の例では、CRUD メソッドを使用するために BaseMapper インターフェイスを継承するだけで済みます。具体的には、insert() メソッドを使用してデータの一部を挿入できます。

@Autowired
private UserDao userDao;

public void insertUser(User user) {
    userDao.insert(user);
}
ログイン後にコピー

updateById() メソッドを使用してデータの一部を更新します。

public void updateUser(User user) {
    userDao.updateById(user);
}
ログイン後にコピー

selectById() メソッドを使用してデータの一部をクエリします。

public User selectUserById(Long id) {
    return userDao.selectById(id);
}
ログイン後にコピー

deleteById() メソッドを使用してデータの一部を削除します:

public void deleteUserById(Long id) {
    userDao.deleteById(id);
}
ログイン後にコピー

複数テーブル CRUD

単一テーブル CRUD 処理に加えて、MyBatis-Plus は複数テーブル CRU 処理もサポートします。複数テーブルの操作では、通常、結合テーブル クエリを通じて必要なデータを取得します。

エンティティ クラスの作成

単一テーブルの CRUD とは異なり、複数テーブルの操作では、複数のエンティティ クラスを作成し、それらの間の関係を確立する必要があります。以下に例を示します。

@Data
public class ArticleVO {
    private Long id;
    private String title;
    private String content;
    private List<CommentVO> comments;
}

@Data
public class CommentVO {
    private Long id;
    private String content;
    private Long articleId;
}
ログイン後にコピー

この例では、ArticleVOCommentVO という 2 つのエンティティ クラスを作成します。 ArticleVO エンティティ クラスには、1 つの記事が複数のコメントに対応することを示す、タイプ List<CommentVO> の属性が含まれています。

CRUD 処理に MyBatis-Plus を使用する

複数テーブルの CRUD 処理では、必要なデータを取得するために MyBatis-Plus が提供する結合テーブル クエリ メソッドを使用する必要があります。 MyBatis-Plus は、結合テーブル クエリを実行するための selectJoin() メソッドを提供します。

@Repository
public interface ArticleDao extends BaseMapper<Article> {
    @Select("SELECT a.*, c.id AS comment_id, c.content AS comment_content FROM article a LEFT JOIN comment c ON a.id = c.article_id WHERE a.id = #{id}")
    ArticleVO selectArticleWithCommentsById(Long id);
}
ログイン後にコピー

上記のコードでは、LEFT JOIN を介して、ArticleVOCommentVO の間の結合テーブル クエリを実装します。この SQL ステートメントは、記事に対応するすべてのコメントをクエリし、その情報を 2 つのエンティティ クラス ArticleVOCommentVO に保存します。

概要

この記事では、単一テーブル CRUD および複数テーブル CRUD 処理に MyBatis-Plus を使用する方法を詳しく説明します。 MyBatis-Plus のカプセル化により、より簡潔で読みやすく、保守しやすいコードを実現できます。 MyBatis-Plus には、データベース関連のアプリケーションをより効率的に開発するのに役立つ他の多くの機能もあります。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート