Mybatis Plus 코드 생 성기 의 실현
MyBatis Plus 는 MyBatis 의 확장 프레임 워 크 이 고 코드 생 성 기 는 MP 의 핵심 기능 중 하나 이 며'조건 부 구조 기'와'범용 CRUD'등의 기능 도 있다.
단계 시범
mp 의 코드 생 성 기 는 두 가지 방식 으로 코드 를 자동 으로 생 성 합 니 다.하 나 는 main 방법 으로 프로그램 을 실행 하 는 것 이 고 다른 하 나 는 Maven 플러그 인 build 를 통 해 생 성 됩 니 다.두 번 째 방법 은 pom.xml 에 대량의 설정 정 보 를 추가 해 야 하기 때문에 저 는 첫 번 째 방식 을 사용 하 는 경향 이 있 습 니 다.절 차 는 다음 과 같다.
1.my batis plus 의존 추가:
프로젝트 를 만 들 지 않 았 다 면 프로젝트 프로젝트 를 만 들 고 jar 패 키 지 를 프로젝트 의 classpath 에 의존 해 야 합 니 다.pom.xml 이 들 어 있 는 maven 프로젝트 라면 제 가 최근 에 사용 하고 있 는 springboot 프로젝트 와 같이 pom 의존 도 를 직접 추가 할 수 있 습 니 다.
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3</version>
</dependency>
연결:maven 중앙 라 이브 러 리,아 리 쿠2.생 성기 주 클래스 만 들 기
공식 적 으로 제 시 된 인 스 턴 스 연결:코드 생 성기여기 제 가 정리 한 코드 를 붙 입 니 다.
package com.mht.springbootmybatis.generate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
/**
* <p>
*
* </p>
*/
public class MpGenerator {
/**
* <p>
* MySQL
* </p>
*/
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// freemarker , Veloctiy
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
//
GlobalConfig gc = new GlobalConfig();
gc.setAuthor("Mht");
gc.setOutputDir("D://workspace/spring-boot-mybatis/src/main/java");
gc.setFileOverride(false);// , false
gc.setActiveRecord(true);// ActiveRecord false
gc.setEnableCache(false);// XML
gc.setBaseResultMap(true);// XML ResultMap
gc.setBaseColumnList(false);// XML columList
/* , %s ! */
// gc.setMapperName("%sDao");
// gc.setXmlName("%sDao");
// gc.setServiceName("MP%sService");
// gc.setServiceImplName("%sServiceDiy");
// gc.setControllerName("%sAction");
mpg.setGlobalConfig(gc);
//
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setTypeConvert(new MySqlTypeConvert() {
// 【 】
@Override
public DbColumnType processTypeConvert(String fieldType) {
System.out.println(" :" + fieldType);
// !!processTypeConvert , 、 。
return super.processTypeConvert(fieldType);
}
});
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setUrl("jdbc:mysql://localhost:3306/ease-run?useUnicode=true&characterEncoding=utf8");
mpg.setDataSource(dsc);
//
StrategyConfig strategy = new StrategyConfig();
// strategy.setCapitalMode(true);// ORACLE
strategy.setTablePrefix(new String[] { "user_" });//
strategy.setNaming(NamingStrategy.nochange);//
strategy.setInclude(new String[] { "user" }); //
// strategy.setExclude(new String[]{"test"}); //
//
// strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");
// ,
// strategy.setSuperEntityColumns(new String[] { "test_id", "age" });
// mapper
// strategy.setSuperMapperClass("com.baomidou.demo.TestMapper");
// service
// strategy.setSuperServiceClass("com.baomidou.demo.TestService");
// service
// strategy.setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl");
// controller
// strategy.setSuperControllerClass("com.baomidou.demo.TestController");
// 【 】 ( false)
// public static final String ID = "test_id";
// strategy.setEntityColumnConstant(true);
// 【 】 ( false)
// public User setName(String name) {this.name = name; return this;}
// strategy.setEntityBuilderModel(true);
mpg.setStrategy(strategy);
//
PackageConfig pc = new PackageConfig();
pc.setParent("com.mht.springbootmybatis");
// pc.setModuleName("test");
mpg.setPackageInfo(pc);
// , VM cfg.abc 【 】
// InjectionConfig cfg = new InjectionConfig() {
// @Override
// public void initMap() {
// Map<String, Object> map = new HashMap<String, Object>();
// map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
// this.setMap(map);
// }
// };
//
// // xxList.jsp
// List<FileOutConfig> focList = new ArrayList<>();
// focList.add(new FileOutConfig("/template/list.jsp.vm") {
// @Override
// public String outputFile(TableInfo tableInfo) {
// //
// return "D://my_" + tableInfo.getEntityName() + ".jsp";
// }
// });
// cfg.setFileOutConfigList(focList);
// mpg.setCfg(cfg);
//
// // xml
// focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
// @Override
// public String outputFile(TableInfo tableInfo) {
// return "/develop/code/xml/" + tableInfo.getEntityName() + ".xml";
// }
// });
// cfg.setFileOutConfigList(focList);
// mpg.setCfg(cfg);
//
// // xml ,
// TemplateConfig tc = new TemplateConfig();
// tc.setXml(null);
// mpg.setTemplate(tc);
// , copy mybatis-plus/src/main/resources/templates ,
// src/main/resources/templates , ,
// TemplateConfig tc = new TemplateConfig();
// tc.setController("...");
// tc.setEntity("...");
// tc.setMapper("...");
// tc.setXml("...");
// tc.setService("...");
// tc.setServiceImpl("...");
// OR Null 。
// mpg.setTemplate(tc);
//
mpg.execute();
// 【 】
// System.err.println(mpg.getCfg().getMap().get("abc"));
}
}
파일 은 기본적으로 가 져 와 서 직접 사용 할 수 있 지만,이 두 개의 코드 를 주의해 야 한다.
gc.setOutputDir("D://workspace/spring-boot-mybatis/src/main/java");//
pc.setParent("com.mht.springbootmybatis");//
다음 그림 은 제 프로젝트 의 경로 입 니 다.(코드 생 성 기 를 실행 한 후의 프로젝트 구조)main 방법 을 실행 하기 전에 파일 을 생 성 할 때 템 플 릿 엔진 의 선택 이 필요 합 니 다.MyBatis Plus 의 기본 템 플 릿 엔진 은 velocity 입 니 다.우 리 는 freemarker 를 사용 할 수 있다.
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
마지막 으로 main 방법 을 실행 하면 됩 니 다.실행 콘 솔 은 다음 과 같 습 니 다:
코드 생 성 전에 데이터베이스 에 표 가 이미 존재 하 는 지 확인 하 십시오.
참고 글:
《 MyBatis Plus 코드 생 성기 》
《 MyBatis Plus 학습 》
《 my batis-plus 사고 지도,my batis-plus 더 이상 어렵 지 않 습 니 다. 》
Mybatis Plus 코드 생 성기 의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.Mybatis Plus 코드 생 성기 에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringMVC와 Mybatis 집합은 호출 저장 프로세스, 사무 제어 실례를 실현한다SSM 프레임워크에서 호출 데이터베이스의 저장 프로세스와 사무 제어에 자주 사용되는데 다음은 증빙서류를 저장하는 예를 들어 소개한다. 1. Oracle에 저장된 프로세스 코드는 다음과 같습니다(주요 논리는 증빙 서류...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.