python 根据 数据库创建java 文件
#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 文件的更多相关文章
- eclipse 下载、安装、创建java文件工程、运行---Windows 10
一.Eclipse Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插 ...
- 创建java文件和注释
创建java文件和注释 一 创建java文件 在文件夹里创建txt文本文件,后将格式改为.java, 输入 1 public class Hello{ 2 public static void mai ...
- idea分布式创建子模块后不能创建java文件
问题描述:多模块情况下,创建java文件,找不到java类,如下图,即使手动创建,在里面编写内容也没有任何反应. 解决方案:右键将文件标记为Sources Root便可以了,如果想要标记为资源文件的话 ...
- linux环境下vim创建java文件,并编译运行
一.前提 安装Java 二.创建工作目录并编辑java文件 三.编译 四.运行
- robotium测试创建java文件和junit文件区别
两者本身差别不大,只是构造方式不同,我一般都用java文件来创建. 1.当有源码测试时,创建junit测试文件 ActivityInstrumentationTestCase2<T>T可以 ...
- python从TXT创建PDF文件——reportlab
使用reportlab创建PDF文件电子书一般都是txt格式的,某些电子阅读器不能读取txt的文档,如DPT-RP1.因此本文从使用python实现txt到pdf的转换,并且支持生成目录,目录能够生成 ...
- Intellij IDEA 没办法创建java文件
然后就是具体的解释和解决方案. 如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注,这个知识点非常非常重要,必须会. Sources 一般用于标注类似 src 这种可编译目录.有时候我 ...
- [Python]PyCharm在创建py文件时自动添加头部注释
在Pycharm主界面找到 File ----->> Setting ----->> Editor ----->> File and Code Templates ...
- Python:批量创建py文件
import os filePrefix='Test' fileSuffix='.py' fileNum=7 #文件个数 for i in range(0,fileNum): filename=fil ...
随机推荐
- Javascript面向对象(二):构造函数的继承
这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承"的五种方法. 比如,现在有一个" ...
- python的程序书写以及保存
在前面的微博里已经叙述Python的安装以及路径的设置. 在我们的windows的电脑上面我们已经安装完了python以及设置了它的路径,所以我们可以再cmd里面进行Python的编写(cmd的快速打 ...
- MyBatis总结一:快速入门
简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 ...
- Select2下拉选项库 部分积累
用了这么久的Select2插件,也该写篇文章总结总结. 在我的印象里Select2有2个版本,最新版本有一些新的特性,并且更新了一下方法参数,比最初版本要好看一些,本文针对新版本. 官网:http:/ ...
- TabHost两种不同的实现方式
第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost.只要定义具体Tab内容布局就行了 第二种:不用继承TabActivity,在布局文件中定 ...
- nginx关闭php报错页面显示
默认情况下nginx是会显示php的报错的,如果要关闭报错显示,需要在/usr/local/php7/etc/php-fpm.d/www.conf文件里面设置,貌似默认情况下在php.ini关闭没效果 ...
- 算法Sedgewick第四版-第1章基础-007一用两个栈实现简单的编译器
1. package algorithms.util; import algorithms.ADT.Stack; /****************************************** ...
- Javascript parseInt()和parseFloat()的用法
parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字:如果不是,该方法将返回NaN,不再继续执行其他操作.但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试.这一 ...
- Entity Framework Code-First(21):Automated Migration
Automated Migration: Entity framework 4.3 has introduced Automated Migration so that you don't have ...
- 数据结构_sfdg(小F打怪)
问题描述 小 F 很爱打怪, 今天因为系统 bug, 他提前得知了 n 只怪的出现顺序以及击倒每只怪得到的成就值 ai. 设第一只怪出现的时间为第 1 秒,这个游戏每过 1 秒钟出现一只新怪且没被击倒 ...