MBP01 Mybatis-plus를 Spring Boot로 가져오기
10400 단어 mybatisplusspringboot
在Spring Boot项目内引入mybatis-plus
설치
[pom.xml]에 직접 maven 종속성을 추가합니다. mysql-connector
버전은 언급할 필요가 없습니다(주석 참조).
<!-- mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- mysql connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- The managed version is 8.0.21 The artifact is managed in org.springframework.boot:spring-boot-dependencies:2.3.4.RELEASE -->
</dependency>
注意我们是在spring boot中使用mybatis-plus,所以引入的包必须是 mybatis-plus-boot-starter
.
구성
리소스 폴더 아래의 [application.properties]에 구성을 작성합니다.
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xxx?useSSL=true
spring.datasource.username=xxx
spring.datasource.password=xxxxxx
엔티티 클래스
엔터티 클래스를 생성하기 전에 데이터베이스 테이블을 설계하고 생성해야 합니다.
이 예에서는 간단한 사용자 테이블과 목표 테이블을 생성합니다. 그리고 일대다 관계가 있습니다.
create table users (
id integer primary key not null auto_increment,
username varchar(50) not null,
password varchar(100) not null,
question varchar(150),
answer varchar(50)
);
create table objective (
id integer primary key not null auto_increment,
name varchar(50) not null,
user_id integer not null,
foreign key (user_id) REFERENCES users (id)
);
엔티티 클래스의 경우 이름을 AppUser
로 지정했습니다. 클래스가 다르기 때문에 테이블에 클래스를 수동으로 매핑해야 합니다.
명확하고 읽을 수 있는 주석을 사용하는 것이 좋습니다.
@TableName(value = "users")
public class AppUser {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField(value = "username")
private String username;
@TableField(value = "password")
private String password;
@TableField(value = "question")
private String question;
@TableField(value = "answer")
private String answer;
@TableField(exit = false)
private List<Objective> objectives;
}
테이블의 열 이름이 클래스의 매개변수 이름과 정확히 같으면 @TableField
를 생략할 수 있습니다.
@TableField(exit = false)
속성을 매핑하는 열이 데이터베이스에 없음을 나타냅니다.
기본 키
type
의 @TableId
속성을 사용하여 테이블의 기본 키에 전략을 설정할 수 있습니다.
이 문서에서 논의할 몇 가지 옵션은 다음과 같습니다.
<!-- mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- mysql connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- The managed version is 8.0.21 The artifact is managed in org.springframework.boot:spring-boot-dependencies:2.3.4.RELEASE -->
</dependency>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xxx?useSSL=true
spring.datasource.username=xxx
spring.datasource.password=xxxxxx
create table users (
id integer primary key not null auto_increment,
username varchar(50) not null,
password varchar(100) not null,
question varchar(150),
answer varchar(50)
);
create table objective (
id integer primary key not null auto_increment,
name varchar(50) not null,
user_id integer not null,
foreign key (user_id) REFERENCES users (id)
);
@TableName(value = "users")
public class AppUser {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField(value = "username")
private String username;
@TableField(value = "password")
private String password;
@TableField(value = "question")
private String question;
@TableField(value = "answer")
private String answer;
@TableField(exit = false)
private List<Objective> objectives;
}
ASSIGN_ID
기본 전략입니다. 알고리즘(SnowFlake)을 사용하여 고유 ID를 생성합니다. 기본 키의 유형은 Java의 경우 Long 또는 String이어야 하고 mysql의 경우 BIGINT 또는 VARCHAR여야 합니다.
자동
데이터베이스에서 지원되는 자동 증가 전략을 사용합니다.
ASSIGN_UUID
ASSIGN_ID
와 유사하지만 모든 '-'를 제거하고 유형은 문자열 및 VARCHAR이어야 합니다.입력
아이디는 사용자가 입력합니다.
매퍼 클래스
BaseMapper를 확장하는 인터페이스를 만드십시오. 인터페이스는 이미 기본 CRUD 방법을 통합했습니다.
public interface AppUserMapper extends BaseMapper<AppUser> {
//public AppUser find
}
Spring이 매퍼 클래스를 로드하도록 하는 두 가지 방법이 있습니다.
@Mapper
를 추가하거나 @MapperScan(basePackages="com...mapper")
를 추가합니다(아래 코드 참조).@SpringBootApplication
@MapperScan(basePackages="com.myrrh.passbook.mapper")
public class PassbookApplication {
public static void main(String[] args) {
SpringApplication.run(PassbookApplication.class, args);
}
}
테스트
Controller 클래스에 코드를 추가하기만 하면 됩니다(간단하게 하기 위해 서비스 계층을 건너뛰었습니다).
코드를 실행하려면 프로젝트를 시작하고 브라우저에 URL을 입력하기만 하면 됩니다.
@Autowired
AppUserMapper appUserMapper;
@RequestMapping("/testdb")
@ResponseBody
public String testdb() {
// the id type is AUTO
AppUser au = new AppUser("jisd", "89hf3", "My post-graduate best friend", "Hue");
appUserMapper.insert(au);
return "done";
}
Reference
이 문제에 관하여(MBP01 Mybatis-plus를 Spring Boot로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/declair/mbp01-import-mybatis-plus-into-spring-boot-5bml텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)