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

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

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

    隨筆-67  評(píng)論-522  文章-0  trackbacks-0
        在上一章中詳細(xì)分析了JAR包的選擇,那么這次我將對(duì)例子中的一些必須的配置文件進(jìn)行下說(shuō)明。雖然這些配置在網(wǎng)上也很容易找到,但是很多都沒(méi)有講個(gè)因?yàn)樗猿鰜?lái),這樣根本就得不到提高。在此,大象為各位詳細(xì)分析一下這些內(nèi)容。
        實(shí)例中涉及的配置文件有這么幾個(gè)
        applicationContext.xml
        jdbc.properties
        log4j.properties
        struts.xml
        web.xml 
        我準(zhǔn)備在本章中只講applicationContext.xml、jdbc.propertiesweb.xml。log4j的配置大同小異而且也不在本文范圍。至于struts.xml我準(zhǔn)備留到后面與Action代碼一起來(lái)講,因?yàn)橛玫氖?/span>struts2-convention-plugin插件來(lái)實(shí)現(xiàn)struts2的注解,所以這兩個(gè)結(jié)合起來(lái)講要好一些。
        第二部分:分析配置文件
        1、jdbc.properties
        本例采用MySQL數(shù)據(jù)庫(kù),所以我設(shè)置了一個(gè)屬性文件,用來(lái)存放一些連接信息和Hibernate相關(guān)的設(shè)置。
        
        因?yàn)槲覀兪褂玫氖?/span>Hibernate來(lái)與數(shù)據(jù)庫(kù)進(jìn)行交互,把這些東西寫在單獨(dú)的文件里,是方便修改,如果你想換成SQL Server或是Oracle,只需要更改driver、url以及dialect,而且還可以自由控制sql語(yǔ)句的顯示的開(kāi)關(guān),非常方便。至于寫在這里怎么用呢?請(qǐng)接著看下面的applicationContext.xml說(shuō)明。
        2、applicationContext.xml
        這個(gè)文件就是spring的主配置文件了,當(dāng)然,本例也只有這么一個(gè)spring的配置文件,內(nèi)容不多,但做的工作還是很多的,下面我給大家詳細(xì)分析一下。
        
        我把這兩部分放在一起是因?yàn)檫@兩者是相互聯(lián)系的,而且也比較好說(shuō)明。可以這樣來(lái)理解,PropertyPlaceholderConfigurer這個(gè)類就是讀取jdbc. properties文件,并將它們?cè)O(shè)置到這個(gè)類的屬性中。然后再將下面數(shù)據(jù)源配置中定義的這些${jdbc.driver}、${jdbc.url}字符串換成屬性文件中相同名稱的值。${}這種寫法,是類里面方法解析用的,網(wǎng)上都說(shuō)這是叫占位符,我看了源代碼的,其實(shí)是把它們當(dāng)成字符串截取前后的特殊字符,再根據(jù)里面定義的名稱找屬性文件中對(duì)應(yīng)的值。所以這個(gè)類只能讀取properties格式的文件,你如果還有其它需要加入的屬性文件,可以在list之間加入,寫在value標(biāo)簽里面。     
        
        根據(jù)base-package指定的路徑,掃描其下所有包含注解的Bean,并自動(dòng)注入。比如@Repository@Service這些都是注解,前者表示持久層,后者表示業(yè)務(wù)層。這可是非常非常好的一個(gè)功能,是從Spring2.5開(kāi)始加入的一個(gè)非常棒的特性。有了它,我們將不用再去寫那繁瑣的<bean id="" class="" />。本文的主旨就是全注解,就是為了告訴大家不用寫配置文件(當(dāng)然不是絕對(duì)不寫)來(lái)怎樣進(jìn)行開(kāi)發(fā)工作。關(guān)于這部分的具體情況,在后面代碼章節(jié)中會(huì)詳細(xì)講解。
        
        這就是在Spring中定義Hibernate相關(guān)的配置,Spring已經(jīng)集成了這部分功能。通過(guò)class里面定義的類名稱我們很容易就能理解,這是使用注解的方式映射實(shí)體以及創(chuàng)建Hiberante SessionFactory。${hibernate.dialect}、${hibernate.show_sql}和上面的數(shù)據(jù)源配置獲取方式一樣,當(dāng)applicationContext.xml定義好之后,就不用再對(duì)它進(jìn)行修改,而是將修改對(duì)象變成了jdbc.properties文件。
        另外在Spring2.5.6版中,加入了一個(gè)很有用的小功能,就是packagesToScan屬性,它是根據(jù)value中定義的路徑來(lái)掃描其下所有的注解實(shí)體類。大象對(duì)這個(gè)路徑做了多種測(cè)試,另外又看了源代碼,發(fā)現(xiàn)它只能匹配某一類型的路徑,而不是所有路徑。比如上面的value值表示,掃描entity包下面的所有包中的注解類,如果你將類直接放在entity包下,那么服務(wù)器啟動(dòng)和程序運(yùn)行時(shí)都不會(huì)報(bào)錯(cuò),但是當(dāng)你的代碼需要用到這個(gè)類的時(shí)候,就會(huì)出現(xiàn)異常,提示你找不到實(shí)體。
         
        
        這是事務(wù)定義,而且是使用注解方式定義事務(wù)@Transactional),proxy-target-class="true"表示采用動(dòng)態(tài)代理類來(lái)管理事務(wù),如果是false表示采用接口代理來(lái)管理事務(wù)(默認(rèn)值為false)。什么意思呢?就是說(shuō)對(duì)于需要加入事務(wù)處理的類,如果是實(shí)現(xiàn)接口,那么將采用Spring的默認(rèn)事務(wù)管理(Spring默認(rèn)方式為接口),如果不采用接口,而直接使用類,那么就需要cglib類庫(kù)的支持,它通過(guò)動(dòng)態(tài)的創(chuàng)建目標(biāo)類(就是你需要加入事務(wù)的類)的子類,然后對(duì)這子類中的方法(當(dāng)然是從目標(biāo)類中繼承來(lái)的)進(jìn)行事務(wù)管理。這其實(shí)就是AOP切面,而且從中可以看出來(lái),需要加入事務(wù)的方法不能為privatestaticfinal 的方法。這樣說(shuō)也不是很嚴(yán)格,說(shuō)它不能加入事務(wù),是說(shuō)它不能主動(dòng)的啟動(dòng)一個(gè)事務(wù),如果某個(gè)private方法是被某個(gè)public方法調(diào)用的,而public方法是可以被動(dòng)態(tài)代理加入事務(wù)的,所以這個(gè)private方法也一樣被加入了事務(wù),只是它處在public方法的事務(wù)之中。但是staticfinal這兩類方法因?yàn)椴荒鼙蛔宇惛采w,所以無(wú)法加入事務(wù)。如果這兩類型的方法不被其它的事務(wù)方法所調(diào)用,那么它們就會(huì)以無(wú)事務(wù)的方式運(yùn)行,因此很容易造成隱患,這一點(diǎn)請(qǐng)大家特別注意。
        
        上面這個(gè)就是使用配置式來(lái)定義事務(wù),兩種方式的區(qū)別主要是,注解式只用寫那么一句話,然后在業(yè)務(wù)類或方法中加入@Transactional這個(gè)注解標(biāo)記,就完成事務(wù)聲明,不過(guò)對(duì)于每個(gè)業(yè)務(wù)類都需要在類或方法中加入這些標(biāo)記。而配置式聲明,就是不用加這些標(biāo)記,只要你的方法名稱命名比較統(tǒng)一,就可以像上面這樣定義事務(wù)規(guī)范,然后在aop標(biāo)簽中定義切入點(diǎn)與執(zhí)行通知就行了。我感覺(jué)如果業(yè)務(wù)邏輯不是太復(fù)雜的情況,配置式會(huì)比較簡(jiǎn)單,而且修改起來(lái)也方便,這兩種方式我都寫出來(lái)了,至于用哪一種,由你們自己決定。
        3web.xml
        現(xiàn)在使用的Servlet容器還是2.4版,因此web.xml里面還是需要寫配置文件的,到了3.0版就可以采取注解的方式來(lái)實(shí)現(xiàn)了。
        
        Spring ApplicationContext配置文件的路徑,可使用通配符applicationContext*.xml表示所有以applicationContext開(kāi)頭的xml文件。多個(gè)路徑用,號(hào)分隔。比如可以這樣寫:
        
        不過(guò)推薦采用通配符的寫法,能夠簡(jiǎn)單點(diǎn),為什么還要弄那么復(fù)雜呢?
        context-param是在容器啟動(dòng)后最先被執(zhí)行的,并且被放入到容器上下文中。在這里引入spring的配置文件,是供SpringContextLoaderListener監(jiān)聽(tīng)器使用。而這個(gè)監(jiān)聽(tīng)器中會(huì)有一個(gè)ContextLoade類用來(lái)獲取這個(gè)配置文件中的信息。從而進(jìn)行Spring容器的初始化工作。因?yàn)槭遣捎米⒔獾姆绞絹?lái)進(jìn)行開(kāi)發(fā),所以spring的配置文件其實(shí)只有一個(gè),上面那個(gè)星號(hào)可以去掉。
            
        這個(gè)監(jiān)聽(tīng)器就是為了讀取Spring的配置文件,這在上面已經(jīng)講到了。
        
        這是Spring提供的一個(gè)用來(lái)防止內(nèi)存泄漏的監(jiān)聽(tīng)器。在我們使用struts2框架,或其它的某些類庫(kù)時(shí),因?yàn)樗鼈冏陨淼脑O(shè)計(jì),會(huì)用到Introspector(內(nèi)?。C(jī)制來(lái)獲取Bean對(duì)象的信息。但不幸的是,這些框架或類庫(kù)在分析完一個(gè)類之后卻沒(méi)有將它從內(nèi)存中清除掉,內(nèi)存中還保留有大量的靜態(tài)資源,而這些東西又無(wú)法進(jìn)行垃圾回收,因此產(chǎn)生了很嚴(yán)重的內(nèi)存泄漏問(wèn)題。直接表現(xiàn)為服務(wù)器的內(nèi)存使用會(huì)隨著時(shí)間而不斷上升,最后的結(jié)果當(dāng)然就是服務(wù)器當(dāng)?shù)?。所以在這里加入此監(jiān)聽(tīng)器,能夠幫助我們更好的處理內(nèi)存資源回收的問(wèn)題。
        
        這是Spring的編碼過(guò)濾器,我們可以直接拿來(lái)用,相信這段配置應(yīng)該很好理解,不過(guò)請(qǐng)大家注意forceEncoding這個(gè)參數(shù),把它設(shè)置為true表示不管請(qǐng)求中的編碼是什么格式,都將強(qiáng)制采用encoding中設(shè)置的編碼方式。另外對(duì)于響應(yīng)也將按照encoding指定的編碼進(jìn)行設(shè)置。另外不建議將編碼設(shè)置成gb2312或是gbk格式,請(qǐng)采用基于UnicodeUTF-8編碼。
        
        這個(gè)過(guò)濾器是個(gè)好東西,有了它,我們?cè)谑褂?/span>Hibernate延遲加載的時(shí)候,就不會(huì)再為因Session被關(guān)閉,導(dǎo)致延遲加載數(shù)據(jù)異常而頭痛了。網(wǎng)上有很多人說(shuō)這個(gè)不好,其實(shí)在使用中,效果還是不錯(cuò)的。
        
        首先我要說(shuō)這個(gè)過(guò)濾器的名字很雷,不知道寫這類的家伙是不是個(gè)變態(tài),或者喜歡惡搞。主要原因就是,這個(gè)過(guò)濾器的功能是推遲清理值棧中的值,以便在web中進(jìn)行訪問(wèn),另外就是為了配合SiteMesh裝飾器進(jìn)行工作(官方中的說(shuō)明)。如果不加這個(gè),那么Struts2的默認(rèn)過(guò)濾器就會(huì)清空值棧中的值,這樣就會(huì)導(dǎo)致異常。所以說(shuō)這類的名字和功能完全不搭邊,很容易讓人產(chǎn)生誤解。
        
        2.1.6版本里面,已經(jīng)用這個(gè)過(guò)濾器取代了以前的FilterDispatcher,而且在api文檔中已經(jīng)標(biāo)注為@deprecated(不贊成),并說(shuō)明是從Struts 2.1.3版開(kāi)始就棄用這個(gè)過(guò)濾器了,改用StrutsPrepareAndExecuteFilter,除此之外,還可以選擇StrutsPrepareFilterStrutsExecuteFilter。不過(guò)大象建議大家還是選擇StrutsPrepareAndExecuteFilter吧,這也是官方推薦的。
        web.xml里面的幾個(gè)重要的配置就這些,不過(guò)不要忘了,給這些filter加上filter-mapping映射。還有一點(diǎn),請(qǐng)注意這些過(guò)濾器的順序,這個(gè)順序是很重要的,程序運(yùn)行時(shí),是根據(jù)這些filter-mapping的排列順序依次執(zhí)行過(guò)濾操作的。如果不想出現(xiàn)莫名其妙的錯(cuò)誤,請(qǐng)控制好這些過(guò)濾器映射的順序。
        我會(huì)在最后一章附上源碼,大家就這樣慢慢看吧。看到最后一章的時(shí)候,可能這些相關(guān)的知識(shí)就比較清楚了。到時(shí)再對(duì)照源碼練習(xí)下,應(yīng)該會(huì)有一些收獲。恩,這部分就到此結(jié)束了,我們下次繼續(xù)。
        
    本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請(qǐng)注明出處。http://m.tkk7.com/bolo
    posted on 2010-04-14 23:05 菠蘿大象 閱讀(15938) 評(píng)論(27)  編輯  收藏 所屬分類: Struts2

    評(píng)論:
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2010-04-15 20:45 | 菜鳥(niǎo)
    非常好的文章,不過(guò)要是能有一個(gè)基本的crud操作最好了。
    哈哈。。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-15 21:11 | 菠蘿大象
    @菜鳥(niǎo)
    后面的代碼部分會(huì)講到,其實(shí)crud不是我寫這篇系列的目的,我是想通過(guò)詳細(xì)而全面的剖析,告訴大家這樣做的道理。因?yàn)槲以诰W(wǎng)上看到大部分說(shuō)的整合,就是一大堆代碼,連個(gè)注釋都沒(méi)有,更不用說(shuō)自己的理解與總結(jié)了。再就是轉(zhuǎn)帖別人的,看來(lái)看去其實(shí)是一樣的。所以想寫點(diǎn)有用的東西,給需要的人一點(diǎn)幫助。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-18 12:02 |
    寫的不錯(cuò),希望出更好的博文  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-18 12:30 | 菠蘿大象
    @唐
    謝謝支持,第三篇正在寫,請(qǐng)耐心等一下。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-19 20:04 | 三國(guó)阿海
    好東西,我一直會(huì)關(guān)注你寫的博客的  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-19 22:55 | 三國(guó)阿海
    你現(xiàn)在寫的這個(gè)SSH2是我關(guān)注的重點(diǎn)。我天天來(lái)你空間跑個(gè)幾趟。

    我要第一時(shí)間看到你寫的東西。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-20 08:38 | 菠蘿大象
    @三國(guó)阿海
    呵呵,謝謝你支持,不過(guò)我不可能每天都更新,那會(huì)寫死人滴,你一星期來(lái)看一下就可以了  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-20 15:28 | keer
    @菠蘿大象
    謝謝你提供的這一系列的文章,期待在后續(xù)的文章  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2010-04-20 21:57 | 三國(guó)阿海
    今天我留校了啊,來(lái)了晚一點(diǎn).

    恩.我以后會(huì)一個(gè)禮拜來(lái)一次的.

    這兩個(gè)月比較忙,忙著背面試題.  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-21 09:10 | 菜鳥(niǎo)徐
    大象你好我是第一次來(lái)你這里我看你寫的很好,但是Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(三)在那里呢?我怎么沒(méi)看到呢謝謝你發(fā)布下可以嗎?  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-21 09:52 | 菠蘿大象
    @菜鳥(niǎo)徐
    呵呵,還沒(méi)發(fā)出來(lái)你肯定看不到了,恩,今天應(yīng)該可以發(fā)布了。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-22 17:53 | Gavin.lee
    大象的文章經(jīng)典,學(xué)習(xí)對(duì)象~~~ 贊一個(gè)  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2010-04-22 20:23 | 菠蘿大象
    @Gavin.lee
    謝謝支持,希望能對(duì)你有所幫助。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2010-05-07 20:53 | fw
    請(qǐng)教下如果用jdbcdaosupport, 在注解里面用@Repository注解某一個(gè)dao,xml里面定義的dataSource bean要如何注入到這個(gè)dao里面呢? 排除在xml里面用default-autowire="byName"的方案  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2011-02-28 17:37 | bs
    這樣的博文,看完不贊,等待何時(shí)?  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2011-08-19 09:19 | 小宇
    您好,我想看看您的這些配置文件,能否上傳一下呢?  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2011-08-19 09:21 | 菠蘿大象
    @小宇
    第五篇有全部源代碼,請(qǐng)順序看完,再看代碼,這對(duì)你有好處  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2011-08-19 15:21 | 小宇
    @菠蘿大象
    多謝大俠,剛關(guān)注你的博客不久,還有很多需要我去學(xué)習(xí),這個(gè)工程里面關(guān)于hibernate那里有好多不太理解,看你博客里說(shuō)之前講過(guò)一個(gè)關(guān)于這個(gè)的,正打算學(xué)習(xí)呢。太感謝你啦,希望能在這個(gè)SSH2的基礎(chǔ)上做一個(gè)簡(jiǎn)單的注冊(cè)登陸之類的功能就更好了。  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2011-09-16 10:15 | dup
    真的說(shuō)的好詳細(xì),大象用心了,非常感謝!  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2012-01-31 11:41 | 小小鳥(niǎo)
    您寫的非常好,特別是對(duì)于我們這些菜鳥(niǎo)而言,更加增添了繼續(xù)學(xué)習(xí)的信心!謝謝!但是按照你所寫的,在程序調(diào)試的過(guò)程中總是報(bào)錯(cuò),所以并麻煩您能把這個(gè)SSH2的源代碼(加.jar)包的一并發(fā)我一下,我的郵箱:chenmin200396@163.com.  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2012-02-01 16:55 | 菠蘿大象
    @小小鳥(niǎo)
    第5篇有源碼下載,jar包我也沒(méi)有了,你去官方網(wǎng)站下這三個(gè)zip壓縮包就可以都找到了  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2012-03-11 14:31 | QQ
    我自己搭了一個(gè)框架:用Sping3.1.0 和hibernate 1.5.6 Model注解我寫好了
    package com.test.service;


    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import com.warrior.model.SySUser;

    @Service("userService")
    public class UserServiceImpl implements UserService {

    @Autowired
    private SessionFactory sessionFactory;
    public boolean checkLogin(String userName, String password) {
    if("warrior".equals(userName) && "123456".equals(password))
    return true;
    else
    return false;
    }

    public void save(SySUser user) {
    Session s = sessionFactory.openSession();
    try{
    Transaction t = s.beginTransaction();
    t.begin();
    s.save(user);
    t.commit();
    } catch(Exception e){
    e.printStackTrace();
    }finally{

    s.close();
    }

    }
    }

    SessionFactory 的配置:
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="namingStrategy">
    <bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    <property name="packagesToScan">
    <list>
    <value>com.test.model.SySUser</value>
    </list>
    </property>
    </bean>

    服務(wù)器啟動(dòng)沒(méi)有錯(cuò),但保存對(duì)象的時(shí)候就報(bào)錯(cuò)
    org.hibernate.MappingException: Unknown entity

    Email : sky402100@126.com

    求指導(dǎo)  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2012-03-11 14:31 | QQ
    剛寫了,不好意思,是Hibernate 3.5.6  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2012-03-11 14:32 | QQ
    import java.io.Serializable;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;


    @Entity
    @Table(name="sys_user")
    public class SySUser implements Serializable {

    private static final long serialVersionUID = 2829671245902772318L;


    private Long id;

    private String loginName;

    private String password;



    @Id
    public Long getId() {
    return id;
    }
    public void setId(Long id) {
    this.id = id;
    }
    @Column(name="LOGIN_NAME")
    public String getLoginName() {
    return loginName;
    }
    public void setLoginName(String loginName) {
    this.loginName = loginName;
    }
    @Column(name="PASSWORD")
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }

    }  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2012-04-27 14:56 |
    對(duì)初學(xué)者很有幫助,是我看過(guò)最好的一系列的文章了,謝謝  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二) 2012-04-27 14:59 | 菠蘿大象
    @彬
    謝謝支持  回復(fù)  更多評(píng)論
      
    # re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解實(shí)例詳解(二)[未登錄](méi) 2012-04-28 13:42 | jason
    大象QQ多少,望在線指教,加我QQ:532807107也可以,謝謝了。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲AV无码一区二区三区网址 | 亚洲中文字幕一二三四区苍井空 | 国产精品怡红院永久免费| 亚洲色精品aⅴ一区区三区| 日日躁狠狠躁狠狠爱免费视频| 拔擦拔擦8x华人免费久久| 色窝窝亚洲av网| 免费人成在线观看网站品爱网日本| 久久无码av亚洲精品色午夜| 国产福利免费观看| 日韩在线视频播放免费视频完整版 | 久久精品国产亚洲av瑜伽| 国产三级免费电影| 添bbb免费观看高清视频| 大胆亚洲人体视频| 91在线视频免费观看| 亚洲免费在线视频| 国产福利在线免费| 国产精品亚洲精品日韩动图 | 国产精品四虎在线观看免费 | 99视频有精品视频免费观看| 91亚洲精品第一综合不卡播放| 最新亚洲春色Av无码专区| 最近中文字幕无吗免费高清| 亚洲AV日韩AV无码污污网站| 浮力影院亚洲国产第一页| 麻豆精品不卡国产免费看| 亚洲中文字幕久在线| 国产免费午夜a无码v视频| 中文字幕av免费专区| 亚洲国产中文在线二区三区免| 免费观看男人免费桶女人视频| 男人扒开添女人下部免费视频| 亚洲高清国产拍精品26U| 免费看污成人午夜网站| 一级毛片试看60分钟免费播放| 亚洲视频在线观看| 国产大片免费观看中文字幕| 久久精品国产免费一区| 亚洲色大网站WWW永久网站| 国产亚洲精品免费视频播放|