my batis plus 코드 생 성 도구 의 구현 코드

선언:
AutoGenerator 를 사용 하려 고 했 는데 MyBatis-Plus 의 공식 코드 생 성기 입 니 다. ,시도 해 보 았 는데 오류 가 발생 했 습 니 다.이 유 는 MyBatis-Plus 와 mybatis-plus-generator 의 버 전이 일치 하지 않 기 때 문 입 니 다.제 가 사용 하 는 MyBatis-Plus 의 버 전 은 3.42 이지 만 mybatis-plus-generator 의 3.4.2 는 왠 지 모 르 겠 습 니 다.다운로드 가 안 되 고 3.4.1 만 다운로드 할 수 있 습 니 다.실행 할 때 항상 오류 가 발생 하고 볼 설정 설명 도 있 습 니 다.그래서 자신 이 직접 코드 를 만 드 는 도구 류 를 쓰 는 것 이 더 간단 하 다 고 생각 합 니 다.여러분 께 나 눠 드 리 겠 습 니 다.잘 부탁드립니다.
pom 파일 자바-mysql 구동 의존 도입 

 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
단일 코드 구현,편집기 에 복사 하여 붙 여 넣 기,주 방법 으로 실행 하면 됩 니 다. 

import org.apache.commons.lang3.StringUtils;
 
import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/**
 * mybatis plus      
 *        、mapper  、   
 *
 * @author tarzan Liu
 * @date 2021/4/10 19:44
 */
 
public class MyBatisPlusTools {
    private static final String driver = "com.mysql.cj.jdbc.Driver";//  
    private static final String user = "root";  //     
    private static final String pwd = "123456"; //     
    private static final String url = "jdbc:mysql://127.0.0.1:3306/ofcms" + "?user=" + user + "&password=" + pwd+"&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"; //    
    private static String tableName = "of_cms_ad"; //      
    private static String aliasName = "cms_ad"; //      ,          
    private static final String packagePath = "com/tarzan/cms"; //mapper.xml      
    private static final String packageName = "com.tarzan.cms"; //mapper.xml      
    private static final String author = "tarzan"; //   
    private static final String rootPathName = "src/main/java/"; //           
    private static Connection getConnection = null;
    static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    /**
     *      
     */
    private static Connection getConnections() {
        try {
            Class.forName(driver);
            getConnection = DriverManager.getConnection(url);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return getConnection;
    }
 
    /**
     *       
     */
    private static String defaultValue(String value) {
        if (StringUtils.isNotBlank(value)) {
            return ";   :" + value;
        }
        {
            return "";
        }
    }
 
    private  static String getAliasName(String tableName,String prefix){
        return tableName.substring(prefix.length());
    }
 
    /**
     *        
     *             
     *           long
     */
    private static String formatType(String typeValue) {
 
        if ("bit".equalsIgnoreCase(typeValue)) {
            return "Boolean";
        }
        else if (
                typeValue.equalsIgnoreCase("int") || typeValue.equalsIgnoreCase("int unsigned")
                        || typeValue.equalsIgnoreCase("tinyint") || typeValue.equalsIgnoreCase("tinyint unsigned")
                        || typeValue.equalsIgnoreCase("smallint") || typeValue.equalsIgnoreCase("smallint unsigned")
                        || typeValue.equalsIgnoreCase("mediumint") || typeValue.equalsIgnoreCase("mediumint unsigned")
                ) {
            return "Integer";
        } else if (typeValue.equalsIgnoreCase("bigint") || typeValue.equalsIgnoreCase("bigint unsigned")) {
            return "Long";
        } else if (typeValue.equalsIgnoreCase("float") || typeValue.equalsIgnoreCase("float unsigned")) {
            return "Float";
        } else if (typeValue.equalsIgnoreCase("decimal") || typeValue.equalsIgnoreCase("decimal unsigned") || typeValue.equalsIgnoreCase("numeric") || typeValue.equalsIgnoreCase("numeric unsigned")
                || typeValue.equalsIgnoreCase("real") || typeValue.equalsIgnoreCase("real unsigned") || typeValue.equalsIgnoreCase("money") || typeValue.equalsIgnoreCase("money unsigned")
                || typeValue.equalsIgnoreCase("smallmoney") || typeValue.equalsIgnoreCase("smallmoney unsigned")) {
            return "Double";
        } else if (typeValue.equalsIgnoreCase("varchar") || typeValue.equalsIgnoreCase("char")
                || typeValue.equalsIgnoreCase("nvarchar") || typeValue.equalsIgnoreCase("nchar")
                || typeValue.equalsIgnoreCase("text")) {
            return "String";
        } else if (typeValue.equalsIgnoreCase("datetime")) {
            return "Date";
        } else if (typeValue.equalsIgnoreCase("image")) {
            return "Blod";
        } else {
            return "Long";
        }
 
    }
 
 
    /**
     *     
     */
    private static String columnToProperty(String column) {
        StringBuilder result = new StringBuilder();
        //     
        if (column == null || column.isEmpty()) {
            //      
            return "";}
        else column =column.toLowerCase();
        
         if (!column.contains("_")) {
            //      ,       
            return column.substring(0, 1).toLowerCase() + column.substring(1);
        } else {
            //             
            String[] columns = column.split("_");
            for (String columnSplit : columns) {
                //           、            
                if (columnSplit.isEmpty()) {
                    continue;
                }
                //          
                if (result.length() == 0) {
                    //        ,       
                    result.append(columnSplit.toLowerCase());
                } else {
                    //        ,     
                    result.append(columnSplit.substring(0, 1).toUpperCase()).append(columnSplit.substring(1).toLowerCase());
                }
            }
            return result.toString();
        }
    }
 
    /**
     *       
     */
    private static String formatBeanName(String column) {
        StringBuilder result = new StringBuilder();
        //     
        if (column == null || column.isEmpty()) {
            //      
            return "";
        } else if (!column.contains("_")) {
            //      ,       
            return column.substring(0, 1).toUpperCase() + column.substring(1);
        } else {
            //             
            String[] columns = column.split("_");
            for (String columnSplit : columns) {
                //           、            
                if (columnSplit.isEmpty()) {
                    continue;
                }
                //          
                result.append(columnSplit.substring(0, 1).toUpperCase()).append(columnSplit.substring(1).toLowerCase());
            }
            return result.toString();
        }
    }
 
    
    /**
     *      
     */
    private static void getBean(String tableName,String aliasName) {
        getConnection = getConnections();
        StringBuilder sb = new StringBuilder();
        try {
            DatabaseMetaData dbmd = getConnection.getMetaData();
            ResultSet rs = dbmd.getColumns(null, "%", tableName, "%");
            String beanName = formatBeanName(aliasName);
            sb.append("package "+packageName+".entity;

"); sb.append("import com.baomidou.mybatisplus.annotation.TableName;
"); sb.append("import lombok.Data;
"); int length=sb.length(); boolean dateFlag=false; sb.append( " /**
" + " * @author " + author + "
" + " * @date "+ format.format(new Date())+"
" + " */
" + "@Data
" + "@TableName(\""+tableName+"\")
" + "public class "+beanName+"Entity {
"); while (rs.next()) { if(formatType(rs.getString("TYPE_NAME")).equals("Date")){ dateFlag=true; } sb.append("\t//").append(rs.getString("REMARKS")).append(defaultValue(rs.getString("COLUMN_DEF"))).append("
"); sb.append("\tprivate ").append(formatType(rs.getString("TYPE_NAME"))).append(" ").append(columnToProperty(rs.getString("COLUMN_NAME"))).append(";
"); } sb.append("} "); if(dateFlag){ sb.insert(length, "import java.util.Date;
"); } } catch (Exception e) { e.printStackTrace(); } write(sb.toString(),"Entity.java","entity"); System.err.println("
:JAVA (bean.java)" + "
: " + "
:" + format.format(new Date()) + "
"); } /** * DAO */ private static void getMapper(String tableName,String aliasName) { StringBuilder sb = new StringBuilder(); try { String beanName = formatBeanName(aliasName); sb.append("package "+packageName+".mapper;

"); sb.append("import com.baomidou.mybatisplus.core.mapper.BaseMapper;
"); sb.append("import "+packageName+".entity."+beanName+"Entity;
"); sb.append( "/**
" + " * @author " + author + "
" + " * @date "+ format.format(new Date())+"
" + " */
" + "public interface "+beanName+"Mapper extends BaseMapper<"+beanName+"Entity>{
" + "
" + "}"); } catch (Exception e) { e.printStackTrace(); } write(sb.toString(),"Mapper.java","mapper"); System.err.println("
:JAVA (dao.java)" + "
: " + "
:" + format.format(new Date()) + "
"); } /** * SERVICE */ private static void getService(String tableName,String aliasName) { StringBuilder sb = new StringBuilder(); try { String beanName = formatBeanName(aliasName); sb.append("package "+packageName+".service;

"); sb.append("import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
"); sb.append("import org.springframework.stereotype.Service;
"); sb.append("import "+packageName+".mapper."+beanName+"Mapper;
"); sb.append("import "+packageName+".entity."+beanName+"Entity;
"); sb.append( "/**
" + " * @author " + author + "
" + " * @date "+ format.format(new Date())+"
" + " */
" + "@Service
" + "public class "+beanName+"Service extends ServiceImpl<"+beanName+"Mapper, "+beanName+"Entity>{
" + "
" + "}"); } catch (Exception e) { e.printStackTrace(); } write(sb.toString(),"Service.java","service"); System.err.println("
:JAVA (service.java)" + "
: " + "
:" + format.format(new Date()) + "
"); } /** * , , linux redhad * @param str * @param name * */ private static void write(String str, String name,String type) { try { File dir = new File(rootPathName +packagePath+ "/" + type); dir.mkdirs(); String path = dir.getPath() + "/" + formatBeanName(aliasName)+name; File file = new File(path); if (!file.exists()) file.createNewFile(); FileOutputStream out = new FileOutputStream(file, false); // true StringBuilder sb = new StringBuilder(); sb.append(str + "
"); out.write(sb.toString().getBytes("utf-8"));// out.close(); } catch (Exception e) { e.printStackTrace(); } } // private static void tableNames() { getConnection = getConnections(); try { DatabaseMetaData dbmd = getConnection.getMetaData(); ResultSet rs = dbmd.getTables(getConnection.getCatalog(), null, null, new String[] { "TABLE" }); while (rs.next()) { tableName=rs.getString("TABLE_NAME"); aliasName=getAliasName(tableName,"of_"); // getBean(tableName,aliasName); //dao getMapper(tableName,aliasName); // getService(tableName,aliasName); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { // tableNames(); // getBean(tableName,aliasName); //mapper getMapper(tableName,aliasName); // getService(tableName,aliasName); } }
파일 캡 처 생 성
실체

mapper

service

my batis plus 코드 생 성 도구 의 실현 코드 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.my batis plus 코드 생 성 도구 에 관 한 더 많은 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기