项目学习(三)代码生成器

项目学习(一)逆向工程学习-CSDN博客

项目学习(二)公共的代码抽取-CSDN博客

一、代码生成器

在src/test/resources资源包下创建模板文件

1.创建模版

1.1DemoMapper
复制代码
package com.qcby.dao;

import com.qcby.model.Demo;

public interface DemoMapper extends BaseDao<Demo>{

}
1.2DemoService
复制代码
package com.qcby.service;

import com.qcby.model.Demo;

public interface DemoService extends BaseService<Demo>{

}
1.3DemoServiceImpl
bash 复制代码
package com.qcby.service.impl;

import com.qcby.dao.DemoMapper;
import com.qcby.model.Demo;
import com.qcby.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DemoServiceImpl extends BaseServiceImpl<Demo> implements DemoService{
    private DemoMapper demoMapper;

    @Autowired
    public void setDemoMapper(DemoMapper demoMapper) {
        this.demoMapper = demoMapper;
        this.baseDao = demoMapper;
    }
}

2.代码生成器执行类

java 复制代码
package com.qcby.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

public class SourceGenerator {

    public static void main(String[] args) throws Exception {
        generatorSource("Album");
    }

    public static void generatorSource(String objName) throws Exception {
//        generateQuery(objName);
        generateDao(objName);
        generateService(objName);
        generateServiceImpl(objName);
    }


    //    public static void generateQuery(String objName) throws Exception{
//        //EbItem
//        //创建文件输入流
//        BufferedReader br = new BufferedReader(new FileReader("ham-core/src/test/resources/tpl/DemoQuery.tpl"));
//        BufferedWriter bw = new BufferedWriter(new FileWriter("ham-core/src/main/java/cn/tx/query/"+objName+"Query.java"));
//        String line = null;
//        while((line = br.readLine()) != null){
//            line = line.replace("Demo", objName);
//            bw.write(line);
//            bw.newLine();
//
//        }
//        bw.close();
//        br.close();
//    }
    public static void generateDao(String objName) throws Exception {
        //EbItem
        //创建文件输入流
        BufferedReader br = new BufferedReader(new FileReader("hamcore/src/test/resources/tpl/DemoMapper.tpl"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("hamcore/src/main/java/com/qcby/dao/" + objName + "Mapper.java"));
        String line = null;
        while ((line = br.readLine()) != null) {
            line = line.replace("Demo", objName);
            bw.write(line);
            bw.newLine();

        }
        bw.close();
        br.close();
    }

    public static void generateService(String objName) throws Exception {
        //EbItem
        //创建文件输入流
        BufferedReader br = new BufferedReader(new FileReader("hamcore/src/test/resources/tpl/DemoService.tpl"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("hamcore/src/main/java/com/qcby/service/" + objName + "Service.java"));
        String line = null;
        while ((line = br.readLine()) != null) {
            line = line.replace("Demo", objName);
            bw.write(line);
            bw.newLine();

        }
        bw.close();
        br.close();
    }

    public static void generateServiceImpl(String objName) throws Exception {

        //把传递过来的实体类的名字改成小写一份
        String lowerObjName = objName.substring(0, 1).toLowerCase() + objName.substring(1, objName.length());

        //EbItem
        //创建文件输入流
        BufferedReader br = new BufferedReader(new FileReader("hamcore/src/test/resources/tpl/DemoServiceImpl.tpl"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("hamcore/src/main/java/com/qcby/service/impl/" + objName + "ServiceImpl.java"));
        String line = null;
        while ((line = br.readLine()) != null) {
            line = line.replace("Demo", objName);
            line = line.replace("demo", lowerObjName);
            bw.write(line);
            bw.newLine();
        }
        bw.close();
        br.close();
    }
}

运行后会生成AlbumMapper,AlbumService,AlbumServiceImpl,配合逆向工程生成的Album,AlbumMapper.xml能减轻重复代码工作量

相关推荐
·薯条大王4 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
上海广测检测科技有限公司5 小时前
打印机CCC认证详解:产品范围界定与安全及电磁兼容测试要求解读
经验分享
ZJH__GO7 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
程序员黑豆7 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程
命运之光8 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
凤山老林8 小时前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
marvelyu8 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
今儿敲了吗9 小时前
CO——CPU
笔记
今儿敲了吗9 小时前
Python ——第三方包
笔记·python
圆奋奋9 小时前
FreeRTOS学习(三)- 任务调度模块
学习·开源·freertos