Springboot 통합 Mybatis 역방향 프로젝트(상세 설명 판)
6268 단어 mysql자바역공학mybatisspringboot
무슨 역방향 공사?
데이터베이스 에 있 는 데이터 시트 를 분석 하여 자바 빈(데이터베이스 시트 에 대응 하 는 실체 류),dao 인터페이스(데이터 액세스 층 인터페이스,데이터 에 접근 하 는 방법 을 정의),SQLMap(sql 구문 맵 파일,dao 층 인터페이스 류 와 일일이 대응)을 자동 으로 생 성 합 니 다.
step 1:XML 프로필 쓰기
이 프로필 은 코드 설명 을 볼 수 있 는 코드 를 만 드 는 방법 을 정의 합 니 다.
일부 설정 항목 에 대한 설명:
targetPackage
생 성 코드 를 어느 가방 에 넣 을 지 설정 합 니 다.이것 이 없 으 면 Mybatis Generator 가 자동 으로 생 성 됩 니 다.
targetProject
공식 정의
This is used to specify a target project for the generated objects.
targetPackage 가 있 는 디 렉 터 리,즉 targetPackage 의 부모 디 렉 터 리 를 가장 직 설 적 으로 설명 합 니 다.
이 디 렉 터 리 는 반드시 있어 야 합 니 다.없 으 면 Mybatis generator 가 자동 으로 만 들 지 않 습 니 다.
이 경 로 는 절대 경 로 를 쓸 수도 있 고 상대 경 로 를 쓸 수도 있 습 니 다.상대 경 로 는 이 xml 설정 파일 에 비해!
가장 큰 구덩이:왜 Mybatis generator 프로그램 이 실 행 된 후에 코드 파일 이 생 성 되 지 않 았 는 지 에 대한 문 제 는:
mac 랑 windows 가 좀 달라 요.
mac 아래 경 로 는 이렇게 써 야 합 니 다./src
윈도 우즈 의 경 로 는 이렇게 쓰 여 있 습 니 다.src
이것 은 매우 함정 입 니 다.mbg 는 잘못된 힌트 를 주지 않 습 니 다!
step 2:프로그램 생 성 코드
Mybatis Generator 는 공식 적 으로 코드 를 만 드 는 여러 가지 방식 을 제공 하지만 가장 유연 한 것 은 자바 코드 를 직접 작성 하여 설정 파일 을 읽 고 목표 코드 를 만 드 는 것 입 니 다.
package top.crxk.MyBatisGenerator;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class TestMbg {
public static void main(String[] args) throws Exception{
List warnings = new ArrayList();
boolean overwrite = true;
// ,
// ,
File configFile = new File("mbg.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
}
step 3:대상 코드 사용
Mybatis Generator 에서 생 성 된 코드 는 단일 표 의 삭제 와 수정 에 대한 강력 한 조작 을 제공 합 니 다.
표 마다 mbg 는 네 개의 파일 을 생 성 합 니 다.task 표를 예 로 들 면 각각
TaskExample.자바 라 는 종 류 를 사용 하면 각종 조건 조회 자 구 를 동적 으로 정의 하여 하나의 표 에 대한 각종 삭제 와 검 사 를 만족 시 킬 수 있 습 니 다.다른 표 와 관련 되 지 않 으 면 다른 파일 과 접촉 하지 않 아 도 됩 니 다.
예 를 들 어:
@Controller
@ResponseBody
@RequestMapping("/test")
public class testMbgController {
@Autowired
TaskMapper taskMapper;
@Autowired
TaskExample taskExample;
@RequestMapping("/countByExample")
public long countByExample(int id) {
taskExample.or().andIdEqualTo(id);
return taskMapper.countByExample(taskExample);
}
@RequestMapping("/selectByExample")
public List selectByExample() {
taskExample.or().andIdEqualTo(12);
return taskMapper.selectByExample(taskExample);
}
}
관련 세부 사항
TaskExample.Criteria
, TaskExample 。
taskExample.or()
taskExample 의 or()방법 을 호출 하면 Criteria 를 되 돌려 줍 니 다.Criteria 는 데이터 시트 의 각 필드 와 관련 된 방법 을 정 의 했 습 니 다.이 방법 을 사용 하여 조건 을 설정 하고 여러 조건 을 추가 할 수 있 습 니 다.
taskExample.or().andIdEqualTo(12).andDeviceIdIsNull();
포 함 된 조건
4.567917.싫어-관련 열 이 반드시'싫어'방법 으로 전달 해 야 하 는 값 을 의미 합 니 다.이 코드 는 필요 한'%'를 추가 하지 않 았 습 니 다.방법 호출 에서 전달 하 는 값 에서 이 값 을 스스로 설정 해 야 합 니 다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.