12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # coding=utf-8
- # chatgpt 生成代码,概不负责
- import mysql.connector
- import sys
- import pyperclip
- import re
- # 下划线转驼峰
- def underscore_to_camelcase(text):
- parts = text.split('_')
- camelcase = ''.join(word.title() for word in parts)
- camelcase = re.sub(r'\W+', '', camelcase) # 删除非字母数字字符
- camelcase = camelcase[0].upper() + camelcase[1:] # 首字母小写
- return camelcase
- # 从命令行参数中获取表格名称
- table_name = sys.argv[1]
- # 连接MySQL数据库
- cnx = mysql.connector.connect(user='yfb', password='yfb123#',
- host='qqyun.ycxxkj.com', database='lechang_storage_dev', port='38006')
- cursor = cnx.cursor()
- # 定义SQL语句,获取表格列名、数据类型和注释
- sql = f"SELECT DISTINCT column_name, column_type, column_comment FROM information_schema.columns WHERE table_name = '{table_name}'"
- # 执行SQL语句
- cursor.execute(sql)
- # 获取查询结果
- result = cursor.fetchall()
- camelcase = underscore_to_camelcase(table_name)
- # 输出查询结果
- out = ''
- out += f'''<?php
- namespace app\common\model;
- class {camelcase} extends Base
- {{
- '''
- out += " protected $schema = [\n"
- for row in result:
- column_name = row[0]
- column_type = row[1].split("(")[0] # 去除类型中的长度信息
- column_comment = row[2] if row[2] else column_name
- out += f" '{column_name}'\t => '{column_type}',\t // {column_comment}\n"
- out += " ];\n"
- out += "}"
- print(out)
- pyperclip.copy(out.encode().decode())
- print('已写入粘贴板')
- # 关闭连接
- cursor.close()
- cnx.close()
|