Skip to content

Mybatis-Plus

MybatisPlusMybatis フレームワークをもとに開発された拡張ツールです。開発を簡単にし、効率を上げることを目的としています。

クイックスタート

新しい Springboot プロジェクトを作成します。
まず Mysql の座標を導入し、その後で MybatisPlus の座標を手動で追加します。

Step 1:座標を導入する

xml
<!-- 注意:Springboot3.* ではこれを使う -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.9</version>
</dependency>

MybatisPlus の jar パッケージには、すでに Mybatis-SpringMybatis の jar パッケージが含まれています。そのため、重複して導入する必要はありません。

Step 2:yml を設定し、エンティティクラスを作成する

yml
server:
  port: 8080

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db
    username: root
    password: password
java
public class User {
    private Long id;
    private String username;
    private String password;
	// setter & getter & toString
}

Step 3:データ層を書く

以前と同じように、UserMapper インターフェースを作成し、@Mapper アノテーションを追加します。
ただし、中身を書く必要はありません。このインターフェースに BaseMapper インターフェースを継承させるだけです。
さらにジェネリクスを指定します。ジェネリクスの型は対応するエンティティ型です。ここでは User 型です。

java
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

Step 4:起動クラスに MapperScan アノテーションを追加する

java
@SpringBootApplication
@MapperScan("com.angel.mapper")
public class MptestApplication {
    public static void main(String[] args) {
        SpringApplication.run(MptestApplication.class, args);
    }
}

テスト

SpringbootTest の単体テストで userMapper クラスのメソッドを呼び出すと、データベースを操作する多くのメソッドがすでに存在していることが分かります。

java
@SpringBootTest
class MptestApplicationTests {

    @Autowired
    UserMapper userMapper;

    @Test
    void mapperTest() {
        User user = userMapper.selectById(1L);
        System.out.println(user);
    }
}

ページング検索

まず、ページングインターセプターを Spring 管理の bean として設定します。

java
@Configuration
public class Mpcongfig {
    @Bean
    public MybatisPlusInterceptor pageInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}

ページング検索を実行します。

java
IPage page = new Page(2,3);
userDao.selectPage(page, null);
System.out.println("当前页码:"+page.getcurrent());
System.out.println("每页数据总量:"+page.getsize());
System.out.println("总页数:"+page.getPages());
System.out.println("数据总量:"+page.getTotal());
System.out.println("当前页数据:"+page.getRecords());

ログを有効にします。

yaml
mybatis-plus:
 configuration: 
  log-impl: org.apache.ibatis.logging.stdout.StdoutImpl

Released under the MIT License.