python生成javabean

python作為一個(gè)簡潔的語言,在作為工具、監(jiān)控以及運(yùn)維等方面的使用上的確令人耳目一新。于是嘗試使用python做一個(gè)簡陋的javaBean生成工具,目前很多人喜歡在數(shù)據(jù)庫表命名的時(shí)候采用underline的方式如"xx_xx_table",而javabean的命名通常為camel方式,如"myBean"。下面看看python能做些什么。

首先需要連接到數(shù)據(jù)庫,獲取生成javabean對(duì)應(yīng)數(shù)據(jù)庫表的信息

import pymysql

conn = pymysql.connect(host=_host,user=_user,passwd=_pass,db=_sid,port=3306,charset='utf8')

cur = conn.cursor()

sql ='select * from '+ _tableName

cur.execute(sql)

desc = cur.description

從cur.description可以獲取數(shù)據(jù)庫表的字段名稱以及類型,字段類型使用數(shù)字進(jìn)行標(biāo)注,以下是字段類型對(duì)照關(guān)系

1=>'tinyint', 
2=>'smallint', 
3=>'int', 
4=>'float', 
5=>'double', 
7=>'timestamp', 
8=>'bigint', 
9=>'mediumint', 
10=>'date', 
11=>'time', 
12=>'datetime', 
13=>'year', 
16=>'bit', 
//252 is currently mapped to all text and blob types (MySQL 5.0.51a) 
253=>'varchar', 
254=>'char', 
246=>'decimal'

有了以上的這些信息,剩下的事情就簡單了。只需要把字段轉(zhuǎn)成camel方式即可

def underline_to_camel(underline_format):
    camel_format = ''
    if isinstance(underline_format, str):
            for _s_ in underline_format.split('_'):
                camel_format += _s_.capitalize()
    return camel_format

上面這個(gè)函數(shù)轉(zhuǎn)出來的效果所有首字母大寫。這個(gè)可以在循環(huán)里面單獨(dú)處理,或者對(duì)已經(jīng)生成的camel字符串處理即可

newCamel = camel[0].lower() + camel[1:]

拼裝javabean。

for line in desc:
        #根據(jù)mysql類型以及自己的需要對(duì)dateType進(jìn)行轉(zhuǎn)換
        if line[1] in (1, 2, 3, 8, 9, 246):
            dataType = 'int'
        elif line[1] in (4, 5):
            dataType = 'double'
        else:
            dataType = 'String'
        #轉(zhuǎn)換camel寫法,并拼裝javabean
        beanName = underline_to_camel(line[0], 'V')
        funcName = underline_to_camel(line[0], 'F')
        lineStr = "    /** \n"
        lineStr += "    * 字段" + beanName + "\n"
        lineStr += "    */\n"
        lineStr += "    private " + dataType + " " + beanName + ";\n"
        lineStr += "    public " + dataType + " get" + funcName + "() { return " + beanName + "; }\n"
        lineStr += "    public void set" + funcName + "(" + dataType + " " + beanName + ") { this." + beanName + " = " + beanName + "; }\n"
        beanList.append(lineStr)

拼裝完成后,寫文件,關(guān)閉數(shù)據(jù)庫連接就完成了這個(gè)乞丐版的javabean生成工具了。依次類推還可以生成DAO,XML

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容