python生成javabean

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

首先需要連接到數(shù)據(jù)庫胸遇,獲取生成javabean對應(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ù)字進行標(biāo)注,以下是字段類型對照關(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

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

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

拼裝javabean峰搪。

for line in desc:
        #根據(jù)mysql類型以及自己的需要對dateType進行轉(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ù)庫連接就完成了這個乞丐版的javabean生成工具了使套。依次類推還可以生成DAO,XML

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鞠柄,隨后出現(xiàn)的幾起案子侦高,更是在濱河造成了極大的恐慌,老刑警劉巖厌杜,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奉呛,死亡現(xiàn)場離奇詭異,居然都是意外死亡夯尽,警方通過查閱死者的電腦和手機瞧壮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匙握,“玉大人咆槽,你說我怎么就攤上這事∪Ψ模” “怎么了罗晕?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵赠堵,是天一觀的道長小渊。 經(jīng)常有香客問我茫叭,道長,這世上最難降的妖魔是什么揍愁? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮莽囤,結(jié)果婚禮上谬擦,老公的妹妹穿的比我還像新娘朽缎。我一直安慰自己惨远,他們只是感情好话肖,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布北秽。 她就那樣靜靜地躺著,像睡著了一般最筒。 火紅的嫁衣襯著肌膚如雪贺氓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天床蜘,我揣著相機與錄音辙培,去河邊找鬼蔑水。 笑死,一個胖子當(dāng)著我的面吹牛扬蕊,可吹牛的內(nèi)容都是我干的搀别。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼厨相,長吁一口氣:“原來是場噩夢啊……” “哼领曼!你這毒婦竟也來了鸥鹉?” 一聲冷哼從身側(cè)響起蛮穿,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毁渗,沒想到半個月后践磅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡灸异,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年府适,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肺樟。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡檐春,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出么伯,到底是詐尸還是另有隱情疟暖,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布田柔,位于F島的核電站俐巴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏硬爆。R本人自食惡果不足惜欣舵,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缀磕。 院中可真熱鬧缘圈,春花似錦、人聲如沸袜蚕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽廷没。三九已至糊饱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颠黎,已是汗流浹背另锋。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工滞项, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夭坪。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓文判,卻偏偏與公主長得像,于是被迫代替她去往敵國和親室梅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容