MybatisPlusの最初の使用
springBootでMybatisPlusを使用する際の注意事項
1.プロジェクトでは、daoレイヤーのdaoはそれ自体でSQLステートメントを記述する必要はありませんが、マッパーのインターフェイスと前の注釈@Repositoryを継承する必要があります。具体的なコードは次のとおりです。
package com.atguigu.mapper;
import com.atguigu.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper extends BaseMapper<User> {
}
2.スタートアップクラス@MapperScan( "com.atguigu.mapper")に注釈を付ける必要があります
//実装クラスになるインターフェイスが配置されているパッケージを指定すると、パッケージの下のすべてのインターフェイスがコンパイル後に対応する実装クラスを生成します
package com.atguigu;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.atguigu.mapper")
//指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
public class MpApplication {
public static void main(String[] args) {
SpringApplication.run(MpApplication.class, args);
}
}
3.構成ファイル内
3.1JDBC登録ドライバーは最新のものを使用する必要があります
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
3.2以下は、構成ファイルのログを開くためのものです。コンソールにsqlステートメントが表示されます。
mybatis-plus.configuration.log-impl = org.apache.ibatis.logging.stdout.StdOutImpl
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
#下面的这一步是开启日志,在日志文件中可以看见我们的sql语句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
3.3ここで特に注意する必要があるのは、スプリングブーツのバージョンが変更されたため、タイムゾーン設定(東8地区の時間)を追加する必要があるということです。
serverTimezone = GMT%2B8
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8
4. JavaBeanでは、IDはアプリケーションデータタイプを使用する必要があります。たとえば、以下のlongタイプは、1回しか使用できず、2回目は使用できません。パッケージングクラスLongを使用する必要があります。
package com.atguigu.entity;
import lombok.Data;
/**
* @Author Kilig Zong
* @Date 2020/10/27 20:17
* @Version 1.0
*/
@Data
public class User {
//注意这个在mybatis_plus中可以作用在数据库中,但是类型需要是基本数据类型的包装类;
private Long id;
private String name;
private int age;
private String email;
}
5.テストテストクラスでは、@ Testや@Runwithアノテーションなどのアノテーションとその役割に特別な注意を払う必要があります。
package com.atguigu;
import com.atguigu.entity.User;
import com.atguigu.mapper.UserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
//这一步是将test环境和spring容器相融合
@RunWith(SpringRunner.class)
//提供了一个spring容器环境
@SpringBootTest
public class MpApplicationTests {
@Autowired
private UserMapper userMapper;
/***
* @author Kilig Zong
* @date 2020/10/27 21:10
* @description
* @param
* @return void
**/
//下面的这个方法是用来查询所有的用户
@Test
public void testFindAll(){
List<User> users = userMapper.selectList(null);
for (User user : users) {
System.out.println(user);
}
}
@Test
public void testSaveUser(){
User user = new User();
//id是我们mybatisplus帮我们生成的,不能是基本数据类型,必须是引用类型
user.setAge(18);
user.setName("吴世林");
user.setEmail("[email protected]");
int i = userMapper.insert(user);
System.out.println(i);
}
}