記事ディレクトリ
汎用マッパーインターフェイス
- 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
- IDによるクエリ
@Test
void selectById(){
User user1 = userMapper.selectById(6L);
System.out.println(user1);
}
- すべてをクエリする
@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 の導入によって元の文法が変更されることはありません)。