<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    躺在沙灘上的小豬

    快樂(lè)的每一天

    #

    Domain Object 思考(二)

    我們可以讓Domain Object更rich:)

     1package com.martin.pdo;
     2
     3import java.io.Serializable;
     4import java.util.List;
     5
     6/**
     7 * @author martin.xus
     8 * @hibernate.class table="t_user"
     9 * @spring.bean name="user"
    10 * @spring.property name="manager" ref="userManager"
    11 */

    12public class User implements Serializable {
    13
    14    /**
    15     * @hibernate.id generator-class="uuid.hex"
    16     * length="32"
    17     * column="user_id"
    18     */

    19    private String id;
    20
    21    /**
    22     * @hibernate.property column="user_name"
    23     * length="80"
    24     */

    25    private String name;
    26
    27    /**
    28     * @hibernate.property
    29     */

    30    private char sex;
    31
    32    /**
    33     * @hibernate.property
    34     */

    35    private int age;
    36
    37    //省略了getter & setter
    38    private UserManager manager = null;
    39
    40    /**
    41     * @return Returns the manager.
    42     */

    43    public UserManager getManager() {
    44        return manager;
    45    }

    46
    47    /**
    48     * @param manager The manager to set.
    49     */

    50    public void setManager(UserManager manager) {
    51        this.manager = manager;
    52    }

    53
    54    /**
    55     * @param user
    56     */

    57    public void add(User user) {
    58        this.getManager().add(user);
    59    }

    60
    61    public List loadByName(String name) {
    62        return this.getManager().loadByName(name);
    63    }

    64
    65    public void remove(User user) {
    66        this.getManager().remove(user);
    67    }

    68}

    69


    測(cè)試代碼,我們可以這樣來(lái)寫(xiě)

     1ApplicationContext context = JUnitTestHelper.getContext();
     2        User user = (User) context.getBean("user");
     3
     4        User _u1 = new User();
     5        _u1.setName("martin xus");
     6        _u1.setSex('F');
     7        _u1.setAge(100);
     8
     9        user.add(_u1);
    10
    11        Assert.assertEquals(((User) user.loadByName("martin xus").get(0)).getId(), _u1.getId());
    12

    posted @ 2005-09-22 14:46 martin xus| 編輯 收藏

    Domain Object 的思考(一)

         摘要: 我們建一個(gè)簡(jiǎn)單的表如下: +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | varcha...  閱讀全文

    posted @ 2005-09-22 13:31 martin xus| 編輯 收藏

    [討論] Persistent Domain Objects Pattern

    http://www.theserverside.com/patterns/thread.tss?thread_id=33387

    posted @ 2005-09-22 10:05 martin xus| 編輯 收藏

    對(duì)象的存儲(chǔ)&讀取

    python中提供一個(gè)pickle 標(biāo)準(zhǔn)類(lèi) 來(lái) 存儲(chǔ)/讀取 任意的對(duì)象。
    如下:

    import pickle as p
    
    class PickleTest:
    
        def __init__(self,o,filename):
            if not 0:
                self.obj=o
                self.filename=filename
    
        def dump(self):
            print 'save data ',self.obj,' >> ',self.filename
            f = file(filename,'w')
            p.dump(self.obj,f)
    
        def load(self):
            f = file(self.filename)
            s = p.load(f)
            print 'load data from ',self.filename,' >>',s
            return s
    if __name__=='__main__':
        filename = 'test.data'
        obj = {'p1':[0,1,2,3],'p2':(1,2,3),'p3':{'1':1,'2':2},'p4':'str'}
        test = PickleTest(obj,filename)
        test.dump()
        test.load()

    同時(shí)也提供另外一個(gè)類(lèi)cPickle,是c寫(xiě)的,速度當(dāng)然會(huì)快很多。
    只需將如下

    import pickle as p

    換成

    import cPickle as p

    即可

    posted @ 2005-09-21 16:26 martin xus| 編輯 收藏

    python and Template.

    也許說(shuō)法不正確,但是目前我能理解的就是替換,替換指定文本中的內(nèi)容。
    例如:

    <a name="$code$"></a>
    <div class="infomark">$title$</div>
    <div class="info" style="background:#F4F4F4">
    <pre>
        $content$
    </pre>   
    </div>
    <div align="right" class="right"><a href="#000">Top</a></div>
    <br>
    <br>

    我要做的只是替換其中特定格式的 $code$,$title$,$conent$,而已。

    那么我們用re可以輕松搞定(當(dāng)然更復(fù)雜的template需要更深入的去學(xué)習(xí)...)。
    --------------

    import re 
    import sys 
    
    class Template: 
        """ 
            簡(jiǎn)單的模板,用于替換指定文本的特殊字符 
       例如:$code$ 
        """ 
        def __init__(self,filename,params,prefix='$',suffix='$'): 
            if not filename: 
                print 'Error:' 
                sys.exit(-1) 
            else: 
                self.filename=filename            
            self.text=''    
            self.params=params 
            self.prefix=prefix 
            self.suffix=suffix 
    
        def getKeys(self): 
            """ 
                返回所有的要求替換匹配的表達(dá)式 
            """ 
            return params.keys() 
    
        def parse(self): 
            
            self.getContent() 
              
            keys = self.params.keys() 
            for key in keys: 
                value = self.params[key] 
                self.__replace(key,value) 
            return self.text 
    
        
        def getContent(self): 
            """ 
                讀取文件的內(nèi)容 
            """ 
            f = open(self.filename) 
            lines = f.readlines() 
            self.text = ''.join(line for line in lines) 
            
        def __replace(self,key,value):        
            #m = re.match(prefix+key+suffix,text) 
            pattern = '\.*\\'+self.prefix+key+'\\'+self.suffix+'\.*' 
            self.text = re.sub(pattern,value,self.text) 
    
    if __name__=='__main__': 
        filename = 'D:\\workspace\\style\\test\\template.xt' 
        params = {'code':'001001','title':'測(cè)試','content':'的嘎公司今后;飛機(jī)庫(kù)'} 
        t = Template(filename,params) 
        print t.parse()

    ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------

    這樣,我們的python代碼可以更簡(jiǎn)單點(diǎn)了

    我們將以前的代碼做修改,如下:

    import cx_Oracle 
    from Template import * 
    
    def parse(): 
        '''generate the content html''' 
    
        sql = '''select t.bz_code code, t.bz_title title, t.bz_content content 
            from bz_czzs t 
            order by t.bz_code''' 
    
        connection = cx_Oracle.connect( 'etasadmin/etasadmin@zhongju' ) 
        cursor = connection.cursor() 
        cursor.execute(sql) 
        item=cursor.fetchone() 
        i=1; 
        print 'begin' 
        while item: 
            i+=1 
            print 'parsing ',i,' item....' 
            writeContent(item[0],item[1],str(item[2])) 
            item=cursor.fetchone() 
    
    def writeContent(code,title,content): 
        filedir='D:\\m\\content\\' 
        
        params = {'code':code,'title':title,'content':content} 
        t = Template('D:\\workspace\\style\\test\\template.xt',params) 
        s = t.parse() 
    
        out = open(filedir+code+".html",'w') 
        out.write(s) 
        out.flush() 
        out.close() 
        
    if __name__=='__main__': 
        print 'parse..................'    
        parse() 
        print 'end'

    參考文檔:
    http://docs.python.org/lib/module-re.html

    關(guān)于template的進(jìn)一步思考:
    一:不用那么復(fù)雜的制定文件全名:
    'D:\\workspace\\style\\test
    template.xt'
    代碼實(shí)現(xiàn)從當(dāng)前的classpath中自動(dòng)尋找該文件,并且制定文件后綴名。
    那么就變的如下簡(jiǎn)單了。

    t = Template('template',params)

    posted @ 2005-09-20 18:53 martin xus| 編輯 收藏

    僅列出標(biāo)題
    共28頁(yè): First 上一頁(yè) 20 21 22 23 24 25 26 27 28 下一頁(yè) 
    主站蜘蛛池模板: 一二三四免费观看在线视频中文版 | 亚洲一区在线免费观看| 亚洲?V无码乱码国产精品| 亚洲黄色片免费看| 一区二区三区在线免费| 亚洲精品无码久久久久A片苍井空| 国产综合成人亚洲区| 亚洲欧洲日产韩国在线| 国产亚洲高清不卡在线观看| 国产精品成人四虎免费视频| 国产精品69白浆在线观看免费| 国产免费网站看v片在线| 特级毛片全部免费播放a一级| 亚洲日韩av无码中文| 亚洲av永久无码嘿嘿嘿| 久久久久亚洲av无码专区导航| 亚洲人成影院在线无码按摩店| 亚洲av午夜成人片精品电影| 两个人看的www高清免费视频| 杨幂最新免费特级毛片| 亚洲AV永久无码精品一福利 | 久久精品国产亚洲AV蜜臀色欲| 亚洲va无码va在线va天堂| 国产亚洲精品自在线观看| 又色又污又黄无遮挡的免费视| 成年性羞羞视频免费观看无限| 热久久这里是精品6免费观看| caoporn国产精品免费| 亚洲videos| 亚洲午夜电影在线观看| 亚洲成a人片在线观| 久久亚洲精品无码AV红樱桃| 亚洲一区二区三区日本久久九| 亚洲AV无码精品色午夜果冻不卡 | 337p日本欧洲亚洲大胆艺术| 亚洲视频一区在线观看| 亚洲成人高清在线观看| 久久久亚洲AV波多野结衣 | 黄色免费网站网址| 希望影院高清免费观看视频| 97在线观免费视频观看 |