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

项目学习(一)逆向工程学习-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能减轻重复代码工作量

相关推荐
库玛西7 分钟前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
木井巳9 分钟前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法
杨杨杨大侠16 分钟前
知识库已经有了,Java 程序员还要做什么?Spring AI RAG 实战
java·openai·ai编程
小贺儿开发17 分钟前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字
传奇开心果编程21 分钟前
【SwiftUI入门练中学】第1课 从零开始
学习·ui·ios·swiftui·swift
伊信21 分钟前
Spring AI 基础学习与应用
java·后端
是隼人26 分钟前
buuctf-pwn ciscn_2019_sw_1(32位只有一次格式化机会)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
夜郎king28 分钟前
基于 Java + Playwright 实现网站自动访问与数据采集(以腾讯云开发者社区为例)
java·playwright·网页数据获取
Anastasiozzzz33 分钟前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai
careathers35 分钟前
【数据结构】队列
java·数据结构