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 ...
随机推荐
- hive与hbase整合方式和优劣
分别安装hive 和 hbase 1.在hive中创建与hbase关联的表 create table ganji_ranks (row string,num string) STORED BY 'or ...
- 《Android应用性能优化》 第5章 多线程和同步
1.DDMS中可以看见的系统线程(Andorid3.1的Galaxy Tab 10.1为例): main HeapWorker 执行finalize函数和引用对象清理 GC Garbage Colle ...
- 激活 jave platform se
1.有的网页上面会显示这个,但是点击后没反应 解决方案: firefox- >工具-附加组件管理器-“插件” 找到“Java(TM) Platform SE 7”,把“询问是否激活”改为“总是激 ...
- alias这个命令还是很有用的
这是在知乎看到的一个回答. 我一开始学习linux命令的时候觉得这个alias命令很奇怪,为什么要给别人起个别名呢?有什么好处? 因为当时接触的是比较简单的命令 比如ls -al的这种短小的命令,对a ...
- 一个ButtonDemo的实现过程。
来自JDK API 1.6.0: Try this: Click the Launch button to run the Button Demo using Java™ Web Start (dow ...
- 612D The Union of k-Segments
传送门 题目大意 给定n个区间,问你被覆盖至少k次的区间(两端连续区间可以合并)最少有多少个,并输出. 分析 大水题呀QwQ,只需要将每个点的位置及它是左端点还是右端点这两个信息存起来然后进行一些简单 ...
- python-ASCII与Unicode
# Auther: Aaron Fan'''ASCII:不支持中文,1个英文占1个字节Unicode(万国码,支持所有国家的文字显示):支持中文,但是每个英文和中文都占2个字节UTF-8(是一种针对U ...
- Log4Net 调试时输出sql到 视图->输出的sql语句
1.log4net.xml <?xml version="1.0" encoding="utf-8" ?> <!--log4net 配置--& ...
- python 中的异常处理与种类
异常处理是Python工程中补课避免的,进行异常处理,可以帮我们调试代码,使代码找起问题更加简单,更加容易哦. 一般都是利用Try,比较简单,代码也不复杂. try: print 'try...' r ...
- WP8.1&UWP手机设备对状态栏操作
改UWP和WP8.1手机设备的状态栏.首先先说较为普遍的WP8.1设备:首先添加引用:using Windows.UI.ViewManagement;其次就可以使用StatusBar了,它提供了以下方 ...