import MySQLdb
import os,sys
import string
dto=os.getcwd()+"\\dto"
dao=os.getcwd()+"\\dao"
idao=os.getcwd()+"\\dao\\impl"
service=os.getcwd()+"\\service"
iservice=os.getcwd()+"\\service\\impl"
config=os.getcwd()+"\\config" def convertColum(name):
a="_"+name.replace("_", " ")
word=string.capwords(a).replace(" ", "").replace("_", "")
return word def changeType(type):
if(type=="varchar"):
return "String"
elif(type=="int"):
return "Integer"
return "String"
def changeName(name):
return name.lower().capitalize() def creatrFile(fileP,fileN,fileS):
if(os.path.exists(fileP)!=True):
os.makedirs(fileP)
f=file(fileP+"\\"+fileN,'w')
f.write(fileS)
f.close() print("begining to connect Mysql.")
try:
dbName='db'
connection = MySQLdb.connect(user="root",passwd="",host="127.0.0.1",db=dbName)
cursor = connection.cursor()
cursor.execute( "SELECT TABLE_NAME,TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA='"+dbName+"' " ) filestr=[]
configstr=[]
for row in cursor.fetchall():
tableName=row[0]
filestr.append('package dto;\n'
'import java.util.Date;\n'
'import java.util.HashMap;\n'
'import java.util.Map;\n'
'import data.BaseDto;\n'
'public class '+ changeName(tableName)+'Info extends BaseDto {\n'
' public '+ changeName(tableName) +'Info(){\n'
' this.setTbName("'+tableName+'");\n'
' }\n') cursor1 = connection.cursor()
cursor1.execute( "SELECT COLUMN_NAME as ColumnName,DATA_TYPE as dataType FROM INFORMATION_SCHEMA.COLUMNS where table_name='"+tableName+"' and TABLE_SCHEMA='"+dbName+"'" )
getsetStr=[]
for row1 in cursor1.fetchall():
filestr.append(' private '+changeType(row1[1])+' '+convertColum(row1[0])+';\n')
getsetStr.append(' public String get'+changeName(convertColum(row1[0]))+'() {\n'
' return '+row1[0]+';\n'
' }\n'
' public void set'+changeName(convertColum(row1[0]))+'('+changeType(row1[1])+' '+convertColum(row1[0])+') {\n'
' this.'+convertColum(row1[0])+' = '+convertColum(row1[0])+';\n'
' }\n')
getsetStr.append('}')
creatrFile(dto,changeName(tableName)+".java",''.join(filestr)+''.join(getsetStr)) #dao
filestr=[]
filestr.append('package dao;\nimport data.BaseDao;\n'
'import dto.*;\n'
'public interface I'+changeName(tableName)+'Dao implements IRepository<'+ changeName(tableName)+'Info> { \n'
'}')
creatrFile(dao,"I"+changeName(tableName)+"Dao.java",''.join(filestr)) filestr=[]
filestr.append('package dao.impl;\nimport data.BaseDao;\n'
'import dto.*;\n'
'public class '+changeName(tableName)+'DaoImpl extends BaseDao<'+ changeName(tableName)+'Info> implements I'+changeName(tableName)+'Dao { \n'
'}')
creatrFile(idao,""+changeName(tableName)+"DaoImpl.java",''.join(filestr)) #service
filestr=[]
filestr.append('package Service;\n'
'import dto.*;\n'
'public interface I'+changeName(tableName)+'Service { \n'
'}')
creatrFile(service,"I"+changeName(tableName)+"Service.java",''.join(filestr))
filestr=[]
filestr.append('package Service.impl;\nimport data.BaseDao;\n'
'import Service.*;\nimport com.google.inject.Inject;\n'
'public class '+changeName(tableName)+'ServiceImpl { \n'
' @Inject\n'
' private I'+changeName(tableName)+'Dao '+changeName(tableName)+'Dao;\n'
'}')
creatrFile(iservice,""+changeName(tableName)+"ServiceImpl.java",''.join(filestr)) filestr=[]
filestr.append('package cn.uc.custom.wallpaper.config;\n'
'import com.google.inject.*;\n'
'import play.modules.guice.GuiceSupport;\n' 'public class GuicyDummy extends GuiceSupport {\n'
' protected Injector configure() {\n'
' Injector injector = Guice.createInjector(new GuicyDummyModel());\n'
' return injector;\n'
' }\n'
'}\n')
creatrFile(config,"GuicyDummy.java",''.join(filestr)) configstr.append(" bind(I"+changeName(tableName)+"Dao.class).to("+changeName(tableName)+"DaoImpl.class).in(Singleton.class);\n");
configstr.append(" bind(I"+changeName(tableName)+"Service.class).to("+changeName(tableName)+"ServiceImpl.class).in(Singleton.class);\n");
filestr=[]
filestr.append('package cn.uc.custom.wallpaper.config;\n'
'import com.google.inject.*;\n'
'import play.modules.guice.GuiceSupport;\n' 'public class GuicyDummy extends GuiceSupport {\n'
' protected Injector configure() {\n'
' Injector injector = Guice.createInjector(new GuicyDummyModel());\n'
' return injector;\n'
' }\n'
'}\n')
creatrFile(config,"GuicyDummy.java",''.join(filestr))
filestr=[]
filestr.append('package cn.uc.custom.wallpaper.config;\n'
'import com.google.inject.*;\n'
'import play.modules.guice.GuiceSupport;\n' 'public class GuicyDummyModel extends AbstractModule {\n'
' public void configure() {\n')
filestr.append(''.join(configstr))
filestr.append(' }\n'
'}\n')
creatrFile(config,"GuicyDummyModel.java",''.join(filestr))
cursor.close()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])

欢迎访问我的新站:学习树教育的第二入口

第一个python的更多相关文章

  1. 第一个python程序

    一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...

  2. 第一个python实例--监控cpu

    #第一个python实例:监控cpu #/bin/bash/env Python from __future__ import print_function from collections impo ...

  3. 一个python爬虫小程序

    起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的 ...

  4. Virtualenv: 一个Python环境管理工具(windown版本)

    1.安装virtualenv 在安装virtualenv之前,我们需要安装至少有一个版本的python:因为virtualenv是python的一个第三方模块,必须基于python环境才能安装: 如果 ...

  5. 3.第一个python程序

    学习任何一门语言的第一步,首先要写个'hello world',这算是程序员的一个传统.但在写之前,还有注意几个问题. 首先,python是一门脚本语言,而脚本语言的特点就是:我们写的代码会先由解释器 ...

  6. ipython, 一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数

    一个 python 的交互式 shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数. 若用的是fish s ...

  7. 第一个 Python 程序 - Email Manager Demo

    看了一些基础的 Python 新手教程后,深深感觉到 Python 的简洁与强大,这是我的第一个 Python Demo.下面是完整代码与执行截图. 代码: # encoding: utf-8 ''' ...

  8. 【Python脚本】Python创建删除文件-----------我的第一个Python脚本

    Python相对C++和Java来说,是解释性语言,非常适合来编写脚本. 很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作. 我平时学习的时候喜欢新建一 ...

  9. Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字

    想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...

  10. 使用PyQt来编写第一个Python GUI程序

    原文:使用PyQt来编写第一个Python GUI程序 本文由 伯乐在线 - Lane 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:pythonforengineers.com.欢迎加 ...

随机推荐

  1. Tomcat剖析(一):一个简单的Web服务器

    Tomcat剖析(一):一个简单的Web服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器 ...

  2. vs2012 + web api + OData + EF + MYsql

    vs2012 + web api + OData + EF + MYsql 开发及部署 先说下我的情况,b/s开发这块已经很久没有搞了,什么web api .MVC.OData都只是听过,没有实际开发 ...

  3. Java JDK 8 安装和环境变量的配置(Linux and Windows)

    Java JDK 8 的安装以及环境变量的配置(Linux and Windows) JDK(Java Development Kit)包含了Java语言的编译器,能够在这里下载: http://ww ...

  4. C#获取远程计算机硬件信息实例(支持linux和windows)

    原文:C#获取远程计算机硬件信息实例(支持linux和windows) 网上关于WMI的资料很多,但一直没有比较全的属性介绍.今天通过反射把所有属性都给弄出来了.   关于WMI的代码就不多说了.   ...

  5. JS对text非空判断,非空校验

    function JTrim(s){    return s.replace(/(^\s*)|(\s*$)/g, "");} //你先调用一下这个方法,然后在判断 function ...

  6. POJ 1284 Primitive Roots 原根

    题目来源:POJ 1284 Primitive Roots 题意:求奇素数的原根数 思路:一个数n是奇素数才有原根 原根数是n-1的欧拉函数 #include <cstdio> const ...

  7. C#修改用户名

    string strCmdText; strCmdText = "useraccount where name='" + 旧密码 + "' rename " + ...

  8. Jmeter性能测试

    Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的 ...

  9. Android使用OpenGL ES2.0显示YUV,您的手机上的数据要解决两个方面的坐标

    如果说 ,我不知道,如果你不明白这个话题.连接到:http://blog.csdn.net/wangchenggggdn/article/details/8896453(下称链接①), 里面评论有非常 ...

  10. 转载:Linux Used内存到底到哪里去了?

    转自:http://blogread.cn/it/article/6264?f=wb2 有时在Linux下会碰到这样的问题:ps aux看到的RSS内存只有不到30M,但是free看到内存却已经使用了 ...