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. Android开发:怎样定制界面风格

    统一的用户界面是可以使得应用程序更友好.要做到用户界面的统一,我们就必须用到风格(style)和主题(theme).OPhone系统提供了很多系统默认的风格和主题,但是很多情况下,这些不能满足我们的需 ...

  2. Hadoop-2.4.1完全分布式环境搭建

      Hadoop-2.4.1完全分布式环境搭建   Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...

  3. jQuery多文件

    jQuery多文件下载 文件下载是一个Web中非常常用的功能,不过你是做内部管理系统还是做面向公众的互联网公司都会遇到这个问题,对于下载一般有点实际开发经验的都会自己解决,上周弄了一下多文件下载,业务 ...

  4. installshield制作的安装包卸载时提示重启动的原因以及解决办法

    原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...

  5. POJ 1028 Web Navigation 题解

    考查代码能力的题目.也能够说是算法水题,呵呵. 推荐新手练习代码能力. 要添加难度就使用纯C实现一下stack,那么就有点难度了,能够使用数组模拟环形栈.做多了,我就直接使用STL了. #includ ...

  6. 清除css、javascript及背景图在浏览器中的缓存

    在实际项目开发过过程中,页面是上传到服务器上的.而为了减少服务器的压力,让用户少加载,浏览器会将图片.css.js缓存到本地中,以便下次访问网站时使用.这样做不仅减少了服务器的压力,并且也减少了用户的 ...

  7. Mysql之IN 和 Exists 用法

    1.基本用法 IN:后面的子查询 是返回结果集的,换句话说执行次序和Exists()不一样.子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去.符合要求的输出,反之则不输出. Exis ...

  8. css-缩写

    border缩写 /*缩写前*/ element{ border-top-width:1px; border-top-style:solid; border-top-color:#cccccc; } ...

  9. Just a complaint about the college examinations

    Well , you know. As a college student who want to find a good job after graduating  like me , scores ...

  10. Android--扫描二维码

    http://www.cnblogs.com/keyindex/archive/2011/06/08/2074900.html