사용은 기본적으로 두 가지 기본 방법, 확장 된 방식으로 CRUD 프레임 워크를 MyBatis로. XML 매핑 파일 사용 노트를 사용하는 두 가지 기본적인 방법이 있습니다. 확장 MyBatis로 플러스 방식으로, 그 사용이 스프링 데이터 JPA와 유사하다 사용하는 것입니다.
1. 의존 소개
<! - springboot的웹起步依赖->
<의존성>
<의 groupId> org.springframework.boot </의 groupId>
<artifactId를> springboot - 스타터 웹 </ artifactId를>
</ 의존성>
<! - MyBatis로起步依赖-> <의존성> <의 groupId> org.mybatis.spring.boot </의 groupId> <artifactId를> MyBatis로 스프링 부팅 - 스타터 </ artifactId를> <버전> 2.1.0 </ 버전 > </ 의존성>
<! - MySQL의连接驱动->
<의존성>
<의 groupId> MySQL의 </의 groupId>
<artifactId를> MySQL을 커넥터 자바 </ artifactId를>
<분야> 런타임 </ 범위>
</ 의존성>
2.entity 엔티티 클래스
@tablename (값 = "tb_user") // MyBatis로 플러스, 데이터베이스의 테이블 빌드 관계를 사용할 때 요구 사항이 추가 될 공용 클래스 SYSUSER 구현 직렬화 { 필요에 추가 할을 때 @TableId (유형 = IdType.AUTO) // 사용의 MyBatis 플러스 차 키 생성 전략 개인 긴 ID; 개인 문자열 이름; 개인 문자열 암호, 개인 문자열 소금, 개인 문자열 아바타, 개인 문자열 소개, 개인 문자열 발언을; // 생략 GET, 설정 방법 }
프로필 application.properties를 작성합니다
#DB 구성 데이터베이스 정보 :
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = JDBC를 : MySQL의 : /// 테스트
spring.datasource.username = 루트
spring.datasource.password = 루트
spring.datasource = com.zaxxer.hikari.HikariDataSource .Type은
MyBatis로는 환경 통합 #spring
스캔 패키지 #pojo 별칭을
mybatis.type - 별칭 = cn.zhq.system.entity 패키지
MyBatis로로드 # 매핑 파일
mybatis.mapper-위치 = 클래스 경로 : 매퍼 / Mapper.xml *
# 인쇄는 SQL
콘솔에 인쇄 #의 SQL
logging.level.cn.zhq.system.mapper = 디버그
mybatis.type 앨리어싱 패키지는 패킷 mybatis.mapper - 위치 설정 파일의 위치는 엔티티의 위치이다. 뭔가 잘못되면 경우 SQL 플러스 최상의 인쇄 구성의 초기 사용은 다음 너무 쉽게 오류의 원인을 찾을 수 있습니다.
UserMapper 클래스 만들기 (4)
@Mapper 공용 인터페이스의 UserMapper { }
응용 프로그램 스프링 부팅 주석 5.
@EntityScan ( "cn.zhq.system.entity") // 채우기 엔티티 클래스 곳에 패키지의 위치.
이 댓글을 추가 한 후, springboot는 엔티티 클래스를 스캔 할 수 있습니다.
6. CRUD
6.1 CRUD 수 mapper.xml
메소드 UserMapper 클래스 6.1.1 쓰기
/ ** * 사용자 데이터 쿼리 이름 * * @param 이름 * @return * / SYSUSER 경우 FindByName (문자열 사용자 이름);
자원의 매퍼 디렉토리에 6.1.2 만들기 UserMapper.xml 프로필
<! DOCTYPE 매퍼 PUBLIC "- // mybatis.org//DTD 매퍼 3.0 // EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <매퍼 네임 스페이스 = "cn.zhq. system.mapper.UserMapper "> <SELECT ID ="경우 FindByName "resultType ="SYSUSER "parameterType ="문자열 "> 선택 * tb_user 곳에서 자명 = {# 이름} </ 선택> </ 매퍼>
, 삭제, 변경 작업을 추가 선택 태그, 라벨 사용 업데이트를 사용하여 쿼리를 실행합니다. ID가 클래스 메소드 UserMapper의 이름입니다, 반환 값의 resultType 유형, parameterType 매개 변수 유형은 수신됩니다.
6.2를 사용하여 주석 CRUD했다
/ ** *更新用户名 파라미터 : 사용자 이름 * / @Update ( "업데이트 tb_user 세트 이름 = # {사용자 이름} 여기서 ID = # {ID}") 무효 updateByAvatar (문자열 사용자 이름, 긴 ID);
@Update 코멘트를 사용한 후, 당신 쓰기 UserMapper 구성 파일 작동에, 감정 이입 할 수 @Updae 추가 및 삭제에 더 이상 필요. 또한 @Select 쿼리를 사용합니다. 쿼리 일대 많은 관계도 반환 결과 데이터의 유형을 지정 @Results 주석을 사용할 수 있습니다 때, 우리는 여기에 정교하지 않습니다.
두 가지 방법으로 위의 구성 파일에 대한 진술의 SQL 낮은 커플 링을 이용하지만 너무 많은 문제를 사용 주석 방식으로 작성된 구성 파일을 사용, 장점과 단점이 비교적 간단하지만, 커플 링이 높다. 이 간단한 문장 인 경우 문이 구성 파일을 사용하여 복잡한 경우, 제안, 주석을 사용하는 것입니다. 어떤 방법으로 특정 사용, 경우에 따라.
6.3 MyBatis로 플러스 CRUD에 대한
MyBatis로 플러스 스프링 데이터 JPA와 유사, 내장 된 쿼리, 업데이트, 우리는 그 간단한 SQL 문을 작성할 필요가 없습니다 그래서, 문 삽입, 삭제합니다.
6.3.1 도입 의존
<! - MyBatis로 플러스 -> <의존성> <의 groupId> com.baomidou </의 groupId> <artifactId를> MyBatis로 플러스 부팅 스타터 </ artifactId를> <버전> 3.2.0 </ 버전> </ 의존성>
6.3.2 application.yml 프로필
# MyBatis로 플러스 의 MyBatis 플러스 : 타입 별칭 패키지 : cn.zhq.system.entity의 매퍼-사항 : 클래스 경로 :. 매퍼 / * XML의 구성 : JDBC를 위해 널 유형 : 널 (null) 글로벌 설정 : 배너 : 거짓
타입 별칭 패키지는 위치 엔티티 엔티티 클래스 패키지를 채우기 위해. 매퍼-사항 : 파일의지도 위치에 채우기, 당신은 매퍼 구성 오류의 리소스 파일에 기록하지 않는 경우.
6.3.3 관련 서비스, ServiceImpl에서는, 매퍼 클래스
서비스:
공중 인터페이스는 UserService IService <SYSUSER>을 연장 { / ** *更新 * * @param SYSUSER * / 무효 업데이트 (SYSUSER SYSUSER); }
ServiceImpl에서는 :
@Service Public 클래스 UserServiceImpl는 ServiceImpl에서는 <UserMapper, SYSUSER>를 구현 UserService {연장 @Autowired 전용 UserMapper userMapper 단계; @Override @Transactional 파라미터 : (SYSUSER SYSUSER) { userMapper.updateById (SYSUSER); } }
매퍼 :
@Mapper 공용 인터페이스가 UserMapper BaseMapper 연장 <SYSUSER> { }
우리는 UserMapper의 모든 방법을 정의하지 않습니다,하지만 mybatisPlus 우리에게 가능한 여러 가지 방법을 통합 있지만.
실행 후, 인쇄 SQL 문을 결과는 다음입니다