my batis - plus 자동 코드 생 성기 및 springboot 와 의 통합 사용

42546 단어 자바mybatis-plus
1 、 우선 jar 도입
<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<!-- mybatis plus       -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.2.0</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-generator</artifactId>
			<version>3.2.0</version>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.28</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.47</version>
		</dependency>

2, 자동 생 성 모듈 기능 코드 파일 설정 클래스 먼저 페이지 플러그 인 설정
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 author: Administrator
*/
@Configuration
public class MybatisPlusConfig {
    /**
     *     
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

코드 설정 클래스 자동 생 성
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Scanner;
/**
 author: Administrator
     mybatisplus     
*/
public class GeneratorCodeConfig {
    public static String scanner(String tip) {
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("   " + tip + ":");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
            String ipt = scanner.next();
            if (StringUtils.isNotEmpty(ipt)) {
                return ipt;
            }
        }
        throw new MybatisPlusException("      " + tip + "!");
    }

    public static void main(String[] args) {
        //      
        AutoGenerator mpg = new AutoGenerator();

        //     
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("jasonwang");
        gc.setOpen(false);
        //     Swagger2   
        gc.setSwagger2(false);
        mpg.setGlobalConfig(gc);

        //      
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/wang?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        mpg.setDataSource(dsc);

        //    
        PackageConfig pc = new PackageConfig();
//        pc.setModuleName(scanner("   "));
        pc.setParent("com.example.mybatisplus");
        pc.setEntity("model");
        pc.setMapper("mapper");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        pc.setController("controller");
        mpg.setPackageInfo(pc);

        //     
        TemplateConfig templateConfig = new TemplateConfig();

        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        //     
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);

        strategy.setEntityLombokModel(true);
        //     
//        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
        //           
//        strategy.setSuperEntityColumns("id");
        strategy.setInclude(scanner("  ,        ").split(","));
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setTablePrefix(pc.getModuleName() + "_");
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }
}

이 설정 이 완료 되 었 습 니 다. 이 종 류 를 실행 하고 콘 솔 에 표 이름 을 입력 하면 됩 니 다. 한 번 에 여러 장의 표 에 대응 하 는 서비스 코드 를 생 성 하려 면 영문 쉼표 로 구분 하면 1 을 정상적으로 사용 할 수 있 는 지, 먼저 설정 파일 에 데이터 베 이 스 를 설정 할 수 있 는 지, my batis - plus application. yml 을 보 여 줍 니 다.
server:
  port: 8081
  servlet:
    context-path: /

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/wang?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
    serialization:
      write-dates-as-timestamps: false

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true
    auto-mapping-behavior: full
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  global-config:
    #       
    db-config:
      #    
      logic-not-delete-value: 1
      #    
      logic-delete-value: 0

2. mapper 의 가방 스 캔 을 설정 해 야 합 니 다. 그렇지 않 으 면 @ MapperScan ("com. example. my batisplus. mapper") 을 잘못 보고 할 수 있 습 니 다.
@SpringBootApplication
@MapperScan("com.example.mybatisplus.mapper")
public class MybatisPlusApplication {

	public static void main(String[] args) {
		SpringApplication.run(MybatisPlusApplication.class, args);
	}

}

3 、 controller 에서 직접 사용, so easy
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private IUserService userService;
   
    @GetMapping("/{id}/getUser")
    public User getUser(@PathVariable int id){
        return userService.getById(id);
    }
  
}


4. mapper 에서 xml 파일 을 sql 로 작성 하여 정상적으로 사용 되 는 지 확인 합 니 다. 먼저 resources 에서 폴 더 mapper 를 만 들 고 UserMapper. xml 파일 을 만 듭 니 다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.mybatisplus.mapper.auto.UserMapper">

    <!--        -->
    <select id="findAllUser" resultType="com.example.mybatisplus.model.auto.User">
        select * from user
    </select>

</mapper>

usermapper 인터페이스 에 인터페이스 추가
public interface UserMapper extends BaseMapper<User> {
    List<User> findAllUser();
}

IUserservice 인터페이스 에 인 터 페 이 스 를 추가 한 후 UserserviceImpl 에서 구현
public interface IUserService extends IService<User> {
    List<User> findAllUser();
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public List<User> findAllUser() {
        return userMapper.findAllUser();
    }
}

controller 에서 사용 요청
@RestController
@RequestMapping("/user")
public class UserController {
   @Autowired
    private IUserService userService;
    @GetMapping("/findAllUser")
    public List<User> findAllUser(){
        return userService.findAllUser();
    }
}

참고 글:https://www.cnblogs.com/liuyj-top/p/12976396.html

좋은 웹페이지 즐겨찾기