#coding=utf-8
import pymysql
import os
import re # 包全路径
packagepath=r'E:\idea工程\dc-exam\dc-exam\src\main\java\org\dcexam\cms\module\entity'.decode('utf-8') # 包名称
packageName="org.dcexam.cms.module.entity" #数据表前缀
prefix='exam_' #数据表名称 ,传入一个list 集合 请注意,如果有重名的表 那么 会 出错误
#就算不再同一个数据库也会出错。。。。请谨慎操作
tableNames=["exam_history"] host="localhost"
user="root"
password="root"
db="exam" for tableName in tableNames:
# capitalize 可以将首字母大写
fileName=tableName.replace(prefix,"").capitalize()+".java"
print fileName conn = pymysql.connect(host=host,user=user,password=password,database=db,charset="utf8") with conn.cursor() as cursor:
cursor.execute('SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT FROM information_schema.columns WHERE TABLE_NAME="'+tableName+'"')
rs = cursor.fetchall()
with open(os.path.join(packagepath,fileName),'w+') as file:
file.writelines('''package '''+packageName+''';
import lombok.Data;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table; @Data
@Table(name = "'''+tableName+'''")
public class '''+fileName[:-5]+'''{\n''')
for r in rs:
col=r[0].encode('utf-8') # 字段名
types=r[1].encode('utf-8') # 类型
javaType=''
comment=r[2].encode('utf-8') # 注视 if types.find("tinyint(1)")!=-1:
javaType="Boolean "
elif types.find("int")!=-1:
javaType="Integer "
elif types.find("date")!=-1:
javaType="String "
elif types.find("blob")!=-1:
javaType='String '
elif types.find("text")!=-1:
javaType='String '
elif types.find("varchar")!=-1:
javaType='String '
elif types.find("char")!=-1:
javaType='String '
elif types.find("float")!=-1:
javaType="Float "
elif types.find("double")!=-1:
javaType="Double "
if(col=='id' or re.compile(r'[a-zA-Z0-9]id').search(col)):
line='\t@Id\n\t@GeneratedValue(generator="JDBC")\n\t'+javaType+col+' ; //'+comment+"\n"
else:
line= ''' '''+javaType+col+' ; //'+comment
file.writelines(line+'\n')
file.writelines('}')

python 根据 数据库创建java 文件的更多相关文章

  1. eclipse 下载、安装、创建java文件工程、运行---Windows 10

    一.Eclipse Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插 ...

  2. 创建java文件和注释

    创建java文件和注释 一 创建java文件 在文件夹里创建txt文本文件,后将格式改为.java, 输入 1 public class Hello{ 2 public static void mai ...

  3. idea分布式创建子模块后不能创建java文件

    问题描述:多模块情况下,创建java文件,找不到java类,如下图,即使手动创建,在里面编写内容也没有任何反应. 解决方案:右键将文件标记为Sources Root便可以了,如果想要标记为资源文件的话 ...

  4. linux环境下vim创建java文件,并编译运行

    一.前提 安装Java 二.创建工作目录并编辑java文件 三.编译 四.运行

  5. robotium测试创建java文件和junit文件区别

    两者本身差别不大,只是构造方式不同,我一般都用java文件来创建. 1.当有源码测试时,创建junit测试文件 ActivityInstrumentationTestCase2<T>T可以 ...

  6. python从TXT创建PDF文件——reportlab

    使用reportlab创建PDF文件电子书一般都是txt格式的,某些电子阅读器不能读取txt的文档,如DPT-RP1.因此本文从使用python实现txt到pdf的转换,并且支持生成目录,目录能够生成 ...

  7. Intellij IDEA 没办法创建java文件

    然后就是具体的解释和解决方案. 如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注,这个知识点非常非常重要,必须会. Sources 一般用于标注类似 src 这种可编译目录.有时候我 ...

  8. [Python]PyCharm在创建py文件时自动添加头部注释

    在Pycharm主界面找到 File ----->> Setting ----->> Editor ----->> File and Code Templates ...

  9. Python:批量创建py文件

    import os filePrefix='Test' fileSuffix='.py' fileNum=7 #文件个数 for i in range(0,fileNum): filename=fil ...

随机推荐

  1. leetcode653

    class Solution { public: bool findTarget(TreeNode* root, int k) { queue<TreeNode> Q; vector< ...

  2. opencv中文网站相关下载

    http://wiki.opencv.org.cn/index.php/Download

  3. C#如何解析JSON数据(反序列化对象)

    第一章:C#如何拿到从http上返回JSON数据? 第二章:C#如何解析JSON数据?(反序列化对象) 第三章:C#如何生成JSON字符串?(序列化对象) 第四章:C#如何生成JSON字符串提交给接口 ...

  4. Windows10更新后无限重启

    以安全模式进入系统,禁用或卸载显卡驱动. 重启后重新安装驱动.

  5. saltstact的安装与配置

    Saltstack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,人们一般习惯把saltstack比作成简化版的puppet和加强版的func.saltstack基于Pytho ...

  6. JavaScript 书籍推荐(转)

    作者:宋学彦链接:https://www.zhihu.com/question/19713563/answer/23068003来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. 磨刀——python及相关工具

    1.python语言包 1.1去https://www.python.org/,在download栏下载最新版python2或者python3 tips:1.点击下载会很慢,推荐:迅雷,百度云盘下载, ...

  8. C++面向对象类的实例题目七

    题目描述: 编写两个有意义的类,使一个类嵌套在另一个类中. 分析: 本题涉及两个类student和cdegree,前者为学生类,包含学生的学号(nubner),姓名(name)和成绩(degree), ...

  9. 杭电acm 1039题

    这道题也比较简单,写三个函数判断三个条件即可..... 但是开始时我按照已经注释掉的提交,居然提示WA,我百思不得其解,后改成上面的判断式就可以了,求高手解答.... #include "i ...

  10. C语言访问网页

    一.理论 http://www.zixue7.com/thread-3860-1-1.html