import osimport timefrom datetime import datetimeimport com.py.utils.FileUtils as fileUtilsimport com.py.utils.MsgUtils as msgUtilsimport com.py.utils.StrUtils as strUtilscurrent_path = os.path.dirname(os.path.abspath(__file__))config_path = f"{current_path}/config.json"print(config_path)configs = fileUtils.readToJson(config_path)genBaseDir = configs['genBaseDir']if not os.path.exists(genBaseDir):os.makedirs(genBaseDir)codeBasePackage = configs['codeBasePackage']genFiles = configs['genFiles']dbFile = configs['dbFile']dbTable = configs['dbTable']# 获取当前日期和时间now = datetime.now()# 格式化为年-月-日currDate = now.strftime('%Y-%m-%d')t_dbData = fileUtils.readToJson(dbFile)if dbTable not in t_dbData.keys():msgUtils.show_message(msg="当前数据库不存在表,请检查表名!")classCode = strUtils.firstCharToUpper(strUtils.underline_to_camelcase(dbTable))def genBase():genEntity()genDao()genMapper()genService()genController()def genEntity():tempJavaEntity = fileUtils.readCxt(r"D:\temp\codeTemp\entity\Entity.java")tempProp = fileUtils.readCxt(r"D:\temp\codeTemp\entity\temp_property.txt")enCxt = ""for field in t_dbData[dbTable]['fields']:tarProp = tempPropcaseProp = strUtils.underline_to_camelcase(field['field_name'])propType = javeTypeConvert(field['type'])tarProp = tarProp.replace("${columnName}", field['comment']) \.replace("${columnCode}", caseProp) \.replace("${propType}", propType)if propType in ['Date', 'LocalDate']:tarProp = tarProp.replace("${dateFormat}", '@JSONField(format = "yyyy-MM-dd HH:mm:ss")')else:tarProp = tarProp.replace("${dateFormat}", '')non_empty_lines = [line for line in tarProp.split("\n") if line.strip()]enCxt += "\n".join(non_empty_lines) + "\n"tempJavaEntity = tempJavaEntity.replace("${defCurrDate}", currDate) \.replace("${defClassDescription}", t_dbData[dbTable]['table_comment']) \.replace("${defPackage}", codeBasePackage) \.replace("${defClassCode}", classCode) \.replace("${defPropertiesCxt}", enCxt)print(tempJavaEntity)fileUtils.writeCxt(rf"{genBaseDir}\entity\{classCode}Entity.java", tempJavaEntity)def genDao():tempJavaDao = fileUtils.readCxt(r"D:\temp\codeTemp\dao\Dao.java")tempJavaDao = tempJavaDao.replace("${defCurrDate}", currDate) \.replace("${defClassDescription}", t_dbData[dbTable]['table_comment']) \.replace("${defPackage}", codeBasePackage) \.replace("${defClassCode}", classCode)print(tempJavaDao)fileUtils.writeCxt(rf"{genBaseDir}\dao\{classCode}Dao.java", tempJavaDao)def genService():tempJavaService = fileUtils.readCxt(r"D:\temp\codeTemp\service\Service.java")tempJavaService = tempJavaService.replace("${defCurrDate}", currDate) \.replace("${defClassDescription}", t_dbData[dbTable]['table_comment']) \.replace("${defPackage}", codeBasePackage) \.replace("${defClassCode}", classCode)print(tempJavaService)fileUtils.writeCxt(rf"{genBaseDir}\service\{classCode}Service.java", tempJavaService)def genController():tempJavaController = fileUtils.readCxt(r"D:\temp\codeTemp\controller\Controller.java")tempJavaController = tempJavaController.replace("${defCurrDate}", currDate) \.replace("${defClassDescription}", t_dbData[dbTable]['table_comment']) \.replace("${defPackage}", codeBasePackage) \.replace("${defClassCode}", classCode)print(tempJavaController)fileUtils.writeCxt(rf"{genBaseDir}\controller\{classCode}Controller.java", tempJavaController)def genMapper():tempJavaMapper = fileUtils.readCxt(r"D:\temp\codeTemp\mapping\mapper.xml")tempJavaMapper = tempJavaMapper.replace("${defCurrDate}", currDate) \.replace("${defClassDescription}", t_dbData[dbTable]['table_comment']) \.replace("${defPackage}", codeBasePackage) \.replace("${defClassCode}", classCode)print(tempJavaMapper)fileUtils.writeCxt(rf"{genBaseDir}\mapper\{classCode}Mapper.xml", tempJavaMapper)'''或者 TINYINT(1)'''def javeTypeConvert(dbType):if 'bigint' in dbType.lower():return "Long"elif 'tinyint' in dbType.lower():return "Byte"elif 'smallint' in dbType.lower():return "Short"elif 'mediumint' in dbType.lower() or 'int' in dbType.lower():return "Integer"elif 'decimal' in dbType.lower():return "BigDecimal"elif 'double' in dbType.lower():return "Double"elif 'float' in dbType.lower():return "Float"elif 'datetime' in dbType.lower() or 'timestamp' in dbType.lower():return "Date"elif 'date' in dbType.lower():return "LocalDate"elif 'boolean' in dbType.lower():return "Boolean"else:return "String"if __name__ == '__main__':try:genBase()print(">>>>>>>代码生成完成!!<<<<<<<")except Exception as e:print(e)finally:time.sleep(1)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。