#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. LAMP 2.8 php.ini配置文件详解

    修改php配置文件,但有时候我们并不知道 php.ini 所在路径,这时候就需要通过命令来查一查在哪里. /usr/local/php/bin/php -i |head 看那一行 Loaded Con ...

  2. 常见浏览器bug以及解决方法

    1.图片下方3像素: (1).描述:在div中插入图片时,图片会将div下方撑大三像素. (2).hack1:将</div>与<img>写在一行上(可以解决ie6/7): (3 ...

  3. springboot启动过程(1)-初始化

    1   springboot启动时,只需要调用一个类前面加了@SpringBootApplication的main函数,执行SpringApplication.run(DemoApplication. ...

  4. 请用fontAwesome代替网页icon小图标(转)

    1. 引言 网页小图标到处可见,如果一个网页都是干巴巴的文字和图片,而没有小图标,会显得非常简陋.下面的小图标,你是不是会经常用到? 你可能说——“我们用的都是彩色的,不是黑白的”——别着急,下面会讲 ...

  5. 204. Count Primes 统计<n的质数的个数

    [抄题]: Count the number of prime numbers less than a non-negative number, n. [暴力解法]: 时间分析: 空间分析: [优化后 ...

  6. 30-盐水(分段dfs)

    链接:https://www.nowcoder.com/acm/contest/94/K来源:牛客网 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 131072K,其他语言2621 ...

  7. 3、PACBIO下机数据如何看

    转载:http://www.cnblogs.com/jinhh/p/8328818.html 三代测序的下机数据都有哪些,以及他们具体的格式是怎么样的(以sequel 平台为主). 测序过程 SMRT ...

  8. SSH框架(四) struts2+spring3.0的登陆示例

    (一)关键理念及需要注意的地方: 使用struts2+spring3.0的框架搭建web程序,就是使用spring来进行依赖注入(依赖注入请参考baidu上面的解释:http://baike.baid ...

  9. react+node制作在线笔记本(一)

    一. 使用react的官方脚手架create-react-app创建项目,为了支持使用sass,我们使用eject命令 这样,我们就可以自由对webpack进行配置了. 二. 首先要安装style-l ...

  10. Loading Large Bitmaps Efficiently

    有效地加载大位图文件-Loading Large Bitmaps Efficiently 图像有各种不同的形状和大小.在许多情况下,他们往往比一个典型应用程序的用户界面(UI)所需要的资源更大.例如, ...