You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
9.2 KiB
215 lines
9.2 KiB
3 years ago
|
import os
|
||
|
import shutil
|
||
|
from util.CommonUtil import *
|
||
|
from util.MysqlHelper import *
|
||
|
|
||
|
# ==============配置区开始==========================================
|
||
|
|
||
|
# 要生成的数据表
|
||
|
tables = ['t_base_class']
|
||
|
# 类名
|
||
|
namespace = 'BaseClass'
|
||
|
# 中文描述
|
||
|
tableMemo = '班级'
|
||
|
|
||
|
# 数据库
|
||
|
host = '10.10.14.187'
|
||
|
port = 22066
|
||
|
database = 'gtzz_base_db'
|
||
|
user = 'root'
|
||
|
password = 'DsideaL147258369'
|
||
|
# 作者
|
||
|
author = '黄海'
|
||
|
|
||
|
# 包名
|
||
|
packageName = 'com.dsideal.baseService.' + namespace
|
||
|
# ==============配置区结束==========================================
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
# 删除目录
|
||
|
out_path = 'java'
|
||
|
try:
|
||
|
if os.path.exists(out_path):
|
||
|
shutil.rmtree(out_path)
|
||
|
# 创建目录
|
||
|
os.mkdir(out_path)
|
||
|
except:
|
||
|
pass
|
||
|
# 生成时间
|
||
|
today = datetime.date.today()
|
||
|
CurrentDate = today.strftime('%Y-%m-%d')
|
||
|
|
||
|
# 实例化mysql数据库实例
|
||
|
db = MySQLHelper(host, port, database, user, password)
|
||
|
|
||
|
# 是不是存在sort_id字段
|
||
|
sort_id_exists = False
|
||
|
|
||
|
# 遍历生成
|
||
|
for table in tables:
|
||
|
# 函数里面的参数
|
||
|
add_Params = ''
|
||
|
update_Params = ''
|
||
|
delete_Params = ''
|
||
|
addRecordParams = ''
|
||
|
|
||
|
# set record字符串
|
||
|
setRecordAddParams = ''
|
||
|
setRecordUpdateParams = ''
|
||
|
# 功能名称
|
||
|
FunctionName = getClassName(table)
|
||
|
|
||
|
# 表的注释
|
||
|
sql = "select TABLE_COMMENT from information_schema.TABLES where table_schema = '%s' and table_name = '%s' " % (
|
||
|
database, table)
|
||
|
dt = db.query(sql)
|
||
|
tableComment = '未填写表注释说明,请维护一下!'
|
||
|
if dt is not None and len(dt) > 0:
|
||
|
tableComment = dt[0]['TABLE_COMMENT']
|
||
|
|
||
|
# 主键
|
||
|
pk = None
|
||
|
sql = "select column_name FROM information_schema.COLUMNS where table_schema = schema() and column_key = 'PRI' " \
|
||
|
"and table_schema='%s' and table_name = '%s'" % (database, table)
|
||
|
dt = db.query(sql)
|
||
|
if dt is not None and len(dt) > 0:
|
||
|
pk = str(dt[0]["column_name"]).lower()
|
||
|
|
||
|
# 生成
|
||
|
sql = "select column_name 列名, data_type 字段类型, column_comment 字段注释 from information_schema.columns where table_name = '%s' and table_schema = '%s'" % (
|
||
|
table, database)
|
||
|
dt = db.query(sql)
|
||
|
# 1、生成Controller代码
|
||
|
with open('template\\Controller.template', 'r', encoding='utf-8') as f:
|
||
|
templateString = f.read()
|
||
|
# 处理替换# swagger 替换生成增加,修改,删除,分页的标签文字提示
|
||
|
templateString = templateString.replace('#(Author)', author)
|
||
|
templateString = templateString.replace('#(add_remark)', '增加' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(add_summary)', '增加' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(update_remark)', '修改' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(update_summary)', '修改' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(delete_remark)', '删除' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(delete_summary)', '删除' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(page_remark)', '分页' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(page_summary)', '分页' + namespace + '记录')
|
||
|
templateString = templateString.replace('#(ClassMemo)', tableMemo)
|
||
|
# 开始循环
|
||
|
c = 0
|
||
|
for row in dt:
|
||
|
c = c + 1
|
||
|
colName = str(row['列名']).lower()
|
||
|
remark = row["字段注释"]
|
||
|
data_type = row["字段类型"]
|
||
|
|
||
|
# 1、Controller层代码
|
||
|
|
||
|
# 变更一个变量类型
|
||
|
if data_type == 'varchar':
|
||
|
data_type = 'String'
|
||
|
|
||
|
# 是否存在sort_id
|
||
|
if colName == "sort_id":
|
||
|
sort_id_exists = True
|
||
|
|
||
|
# 增加
|
||
|
if colName != pk:
|
||
|
add_Params = add_Params + ',' + data_type + ' ' + colName
|
||
|
add_Params = delFirstDouHao(add_Params)
|
||
|
|
||
|
# 修改
|
||
|
update_Params = update_Params + ',' + data_type + ' ' + colName
|
||
|
update_Params = delFirstDouHao(update_Params)
|
||
|
# 删除时必须是主键
|
||
|
if colName == pk:
|
||
|
delete_Params = delete_Params + ',' + data_type + ' ' + colName
|
||
|
delete_Params = delFirstDouHao(delete_Params)
|
||
|
# 填充字符串
|
||
|
addRecordParams = add_Params + ',' + colName
|
||
|
|
||
|
# set Record字符串
|
||
|
setRecordAddParams = setRecordAddParams + '\r' + '\t\trecord.set("' + colName + '",' + colName + ');'
|
||
|
if colName != pk:
|
||
|
setRecordUpdateParams = setRecordUpdateParams + '\r' + '\t\trecord.set("' + colName + '",' + colName + ');'
|
||
|
|
||
|
# 替换类名
|
||
|
templateString = templateString.replace('#(ClassName)', FunctionName)
|
||
|
templateString = templateString.replace('#(FirstLowClassName)', namespace[0].lower() + namespace[1:])
|
||
|
# 替换变量
|
||
|
templateString = templateString.replace("#(add_Params)", add_Params)
|
||
|
templateString = templateString.replace("#(update_Params)", update_Params)
|
||
|
templateString = templateString.replace("#(delete_Params)", delete_Params)
|
||
|
# 向model层传递参数
|
||
|
add_Params_formodel = add_Params.replace('int ', '').replace('String ', '')
|
||
|
templateString = templateString.replace('#(add_Params_formodel)', add_Params_formodel)
|
||
|
update_Params_formodel = update_Params.replace('int ', '').replace('String ', '')
|
||
|
templateString = templateString.replace('#(update_Params_formodel)', update_Params_formodel)
|
||
|
delete_Params_formodel = delete_Params.replace('int ', '').replace('String ', '')
|
||
|
templateString = templateString.replace('#(delete_Params_formodel)', delete_Params_formodel)
|
||
|
# 生成时间
|
||
|
templateString = templateString.replace('#(CurrentTime)', CurrentDate)
|
||
|
# 替换包名
|
||
|
templateString = templateString.replace('#(packageName)', packageName)
|
||
|
# 替换中文描述
|
||
|
templateString = templateString.replace('#(ClassMemo)', tableMemo)
|
||
|
# 表注释
|
||
|
# templateString = templateString.replace('#(ApiRemark)', tableComment)
|
||
|
# 写入文件
|
||
|
with open(out_path + "\\" + namespace + 'Controller.java', 'w', encoding='utf-8') as f:
|
||
|
f.write(templateString)
|
||
|
|
||
|
# 2、生成Model代码
|
||
|
with open('template\\Model.template', 'r', encoding='utf-8') as f:
|
||
|
templateString = f.read()
|
||
|
# 作者
|
||
|
templateString = templateString.replace('#(Author)', author)
|
||
|
templateString = templateString.replace('#(CurrentTime)', CurrentDate)
|
||
|
templateString = templateString.replace('#(ClassName)', FunctionName)
|
||
|
templateString = templateString.replace('#(className)', namespace)
|
||
|
templateString = templateString.replace("#(table_name)", table)
|
||
|
templateString = templateString.replace("#(pk)", pk)
|
||
|
# 函数参数
|
||
|
templateString = templateString.replace("#(add_Params)", add_Params)
|
||
|
templateString = templateString.replace('#(update_Params)', update_Params)
|
||
|
templateString = templateString.replace('#(delete_Params)', delete_Params)
|
||
|
# 表注释
|
||
|
# templateString = templateString.replace('#(ApiRemark)', tableComment)
|
||
|
# 生成recordModel
|
||
|
# templateString = templateString.replace('#(addRecordParams)', addRecordParams)
|
||
|
templateString = templateString.replace('#(setRecordAddParams)', setRecordUpdateParams)
|
||
|
templateString = templateString.replace('#(setRecordUpdateParams)', setRecordUpdateParams)
|
||
|
|
||
|
# 替换包名
|
||
|
templateString = templateString.replace('#(packageName)', packageName)
|
||
|
templateString = templateString.replace('#(ClassMemo)', tableMemo)
|
||
|
|
||
|
if sort_id_exists:
|
||
|
templateString = templateString.replace("#(sort_condition)", " order by sort_id")
|
||
|
else:
|
||
|
templateString = templateString.replace("#(sort_condition)", "")
|
||
|
|
||
|
# 写入文件
|
||
|
with open(out_path + "\\" + namespace + 'Model.java', 'w', encoding='utf-8') as f:
|
||
|
f.write(templateString)
|
||
|
# 3、生成sql层代码
|
||
|
with open('template\\Sql.template', 'r', encoding='utf-8') as f:
|
||
|
templateString = f.read()
|
||
|
templateString = templateString.replace('#(ClassName)', FunctionName)
|
||
|
templateString = templateString.replace('#(table_name)', table)
|
||
|
templateString = templateString.replace('#(update_Params_formodel)', update_Params_formodel)
|
||
|
|
||
|
if sort_id_exists:
|
||
|
templateString = templateString.replace('#(sort_id)', 'sort_id')
|
||
|
else:
|
||
|
templateString = templateString.replace('#(sort_id)', pk)
|
||
|
|
||
|
templateString = templateString.replace('#(ClassMemo)', tableMemo)
|
||
|
# 替换包名
|
||
|
templateString = templateString.replace('#(packageName)', packageName)
|
||
|
# 写入文件
|
||
|
with open(out_path + "\\" + namespace + '.sql', 'w', encoding='utf-8') as f:
|
||
|
f.write(templateString)
|
||
|
|
||
|
# 数据库关闭
|
||
|
db.close()
|
||
|
logInfo('恭喜,所有操作成功完成!')
|