mybatisPlusの基本

汎用マッパーインターフェイス

  • Mapper インターフェイスは BaseMapper インターフェイスを継承しており、BaseMapper インターフェイスは単一テーブルの追加、削除、変更、クエリに関連する多くの操作メソッドを提供します。この章では、Mapper インターフェースのいくつかのメソッドを紹介します。

データを挿入するだけです -insert

  • データを挿入する
@Test
void insert(){
    
    
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(33);
    user.setEmail("[email protected]");
    userMapper.insert(user);
}

データを削除するだけ - deleteById

  • IDでデータを削除する
@Test
void deleteOne(){
    
    
    userMapper.deleteById(6L);
}

データを変更するだけ - updateById

  • すべてのデータを変更するテスト
@Test
void updateById(){
    
    
    User user = new User();
    user.setId(6L);
    user.setName("迈克");
    user.setAge(35);
    user.setEmail("[email protected]");
    userMapper.updateById(user);
}
  • 一部のデータを変更するテスト
@Test
void updateById(){
    
    
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(35);
    user.setEmail("[email protected]");
    userMapper.updateById(user);
}

単純なクエリ データ - selectById

  1. IDによるクエリ
@Test
    void selectById(){
    
    
        User user1 = userMapper.selectById(6L);
        System.out.println(user1);
    }
  1. すべてをクエリする
@Test
void selectList() {
    
    
    List<User> userList = userMapper.selectList(null);
    System.out.println(userList);
}

共通サービスインターフェース

  • MybatisPlus は、IService インターフェイスと対応する実装クラス ServiceImpl も提供します。この実装クラスは、対応する Service 関連のメソッドをいくつか提供しています。シナリオによっては、ServiceImpl によって提供されるメソッドを直接使用して、対応する関数を実装できます。

  • IService インターフェイスには、サービス関連の追加、削除、変更、およびクエリが含まれています。
    ここに画像の説明を挿入

  • ServiceImpl 実装クラスは、サービス関連の追加、削除、変更、およびクエリ メソッドの実装を提供します。
    ここに画像の説明を挿入

  • UserService インターフェイスは IService インターフェイスを継承します。

  • UserServiceImpl クラスは ServiceImpl<UserMapper, User> を継承します。

  • 関係は次のとおりです。
    ここに画像の説明を挿入

  • UserService オブジェクトを挿入し、関連メソッドをテストする

@Autowired
private UserService userService;

サービスインターフェイス - データの挿入

@Test
void insertService(){
    
    
    User user = new User();
    user.setId(7L);
    user.setName("zhangsan");
    user.setAge(35);
    user.setEmail("[email protected]");

    userService.save(user);
}

サービスインターフェース - データの削除

@Test
void deleteService(){
    
    
    userService.removeById(7L);
}

サービスインターフェース - データの変更

@Test
void updateService(){
    
    
    User user = new User();
    user.setId(6L);
    user.setAge(40);
    userService.updateById(user);
}

サービスインターフェース - クエリデータ

@Test
void selectService(){
    
    
    List<User> userList = userService.selectList();
    System.out.println(userList);
}

カスタムインターフェースメソッド

  • MybatisPlus が提供する Service インターフェースを継承することで、独自のサービス メソッドを拡張できるだけでなく、既存のサービス メソッドの一部を使用することもできます。
  • これらの豊富なインターフェイス メソッドを提供することに加えて、MybatisPlus は独自のニーズに合わせてカスタム インターフェイス メソッドを作成することもでき、SQL ステートメントを自分で作成することで、必要な SQL 要件を実現できます。

カスタム マッパー インターフェイス メソッド

  • 抽象メソッドは Mapper インターフェイスで提供されます
@Mapper
public interface UserMapper extends BaseMapper<User> {
    
    
       User selectByName(String name);
}
  • マッピング構成ファイルと対応する SQL ステートメントを提供します。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.powernode.mapper.UserMapper">

     <select id="selectByName" resultType="com.powernode.domain.User">
        select * from user where name = #{value}
     </select>
</mapper>
  • カスタム Mapper インターフェイス メソッドをテストする
@Test
void myMethod(){
    
    
    User user = userMapper.selectByName("Jone");
    System.out.println(user);
}
  • カスタム インターフェイスの文法仕様は、以前に作成した Mybatis の文法仕様と同じであるため、MybatisPlusが非侵襲的であることがわかります(MybatisPlus の導入によって元の文法が変更されることはありません)。

おすすめ

転載: blog.csdn.net/yang2330648064/article/details/131940377