写作背景
换了家公司后,公司里没有公共的代码生成工具。每次来个新需求,从建表到实体Bean、dao、service等等这样一直做重复的工作会比较烦躁又很费时间。于是自己想写一个玩玩,这里说明一下,公司技术选型为springboot + jdbc templates没有使用到像mybatis等orm框架,所以不需要生成mapper.xml文件。
代码实例
package com.chenyulian.util;
import java.io.*;
import java.sql.*;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static java.text.MessageFormat.format;
/**
* @author 沉鱼
* @date 2018/3/18 15:51
*/
public class GenerateJavaFileUtils {
// 定义数据库常用类型
private static final String TYPE_CHAR = "char";
private static final String TYPE_DATE = "date";
private static final String TYPE_TIMESTAMP = "timestamp";
private static final String TYPE_INT = "int";
private static final String TYPE_BIGINT = "bigint";
private static final String TYPE_TEXT = "text";
private static final String TYPE_BIT = "bit";
private static final String TYPE_DECIMAL = "decimal";
private static final String TYPE_BLOB = "blob";
// 配置文件存放地址
private static final String PACKAGEPATH = "D:\\workspace\\entity\\";
private static final String BEAN_PATH = PACKAGEPATH + "entity_bean";
private static final String SERVICE_PATH = PACKAGEPATH + "entity_service";
private static final String MAPPER_PATH = PACKAGEPATH + "entity_mapper";
private static final String XML_PATH = PACKAGEPATH + "entity_mapper/xml";
// 配置文件包名称 , 这些值需要根据各自的项目配置
private static final String MODULENAME = "com.chenyulian";
private static final String BEAN_PACKAGE = MODULENAME + ".entity";
private static final String MAPPER_PACKAGE = MODULENAME + ".dao";
private static final String SERVICE_PACKAGE = MODULENAME + ".service";
private static final String SERVICEIMPL_PACKAGE = MODULENAME + ".service.impl";
// 配置数据库连接信息
private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
private static final String USER = "root";
private static final String PASSWORD = "123456";
private static final String URL = "jdbc:mysql://localhost:3306/chenyulian?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
// 方法统一命名
private static final String save = "insert";
private static final String update = "updateById";
private static final String countTotalNum = "count";
private static final String queryById = " selectById";
private static final String delete = "deleteById";
// sql语句
private static final String showTablesName = "show tables"; // 获取数据库的所有表名
private static final String showTablesInfo = "show table status"; // 获取数据库的所有表详情信息(包括注释)
private static final String showFields = &