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

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

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

    posts - 5,  comments - 0,  trackbacks - 0
      2010年5月15日
    今天在用IBATIS幫別人寫個程序的時候突然出現了一個很怪異的錯誤
    com.ibatis.common.jdbc.exception.NestedSQLException:   
    --- The error occurred in ./map/Guest.xml.  
    --- The error occurred while applying a result map.  
    --- Check the Guest.listGuest.  
    --- Check the result mapping for the 'password' property.  
    --- Cause: java.sql.SQLException: Column 'userpwd' not found.


    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:94)
    at com.zhxingchen.guestbook.dao.impl.BaseDAOImpl.queryAll(BaseDAOImpl.java:36)
    at com.zhxingchen.guestbook.dao.impl.GuestDAOImpl.queryGuestByProperty(GuestDAOImpl.java:68)
    at com.zhxingchen.guestbook.dao.impl.TestGuestDAO.testQueryByProperty(TestGuestDAO.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Caused by: java.sql.SQLException: Column 'userpwd' not found.


    at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:983)
    at com.mysql.jdbc.ResultSet.getString(ResultSet.java:4826)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.ibatis.common.jdbc.logging.ResultSetLogProxy.invoke(ResultSetLogProxy.java:47)
    at $Proxy7.getString(Unknown Source)
    at com.ibatis.sqlmap.engine.type.StringTypeHandler.getResult(StringTypeHandler.java:35)
    at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:619)
    at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345)
    at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:384)
    at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
    at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
    ... 28 more
        出現這個錯誤的當頭我就懵了,我怎么也想不明白數據庫里面怎么會沒有userpwd這個字段,我反復的對照都感覺數據庫里是有的啊,最后終于讓我找出了問題所在,等知道后我就暈了,一個很簡單的映射錯誤,我居然反復了看了3個小時,可能是熬夜了思維停滯了吧!
    以下是SQLMap.xml的兩段段代碼:第一段是定義了一個resultMap,第二段是利用這個resultMap返回
    <resultMap id="listGuest" class="guest"> <result property="id"/> <result property="userName"/> <result property="password" column="userpwd"/> <result property="realName"/> <result property="gender"/> <result property="age"/> <result property="email"/> <result property="qq"/> </resultMap>
    <statement id="queryGuestByProperty" parameterClass="guest" resultMap="listGuest"> SELECT ID as id, USERNAME as userName, USERPWD as password, USERREALNAME as realName, USERSSEX as gender, USERAGE as age, USEREMAIL as email, USERQQ as qq FROM GUEST <dynamic prepend="WHERE"> <isNotNull prepend="AND" property="password"> USERNAME=#userName# </isNotNull>
    ...............
    也許不仔細看還真看不出來,其實USERPWD在取出來的時候就已經轉換成password了,難怪在resultMap中始終找不到userpwd,這樣要是能找到才怪!~
    改的話很容易,我傾向于改resultMap文件,將password后面的 column="userpwd"去掉就OK了!~
    萬事還得謹慎!?。。。?/div>
    posted @ 2010-05-15 06:57 Zhjiang 閱讀(1005) | 評論 (0)編輯 收藏
      2010年5月14日
    今天早上在上班的路上突然想起來《錦瑟》,于是隨便念了一下,走著走著,突然想讀讀這首詩,不為其他,只為興起。
    錦瑟  李商隱
    錦瑟無端五十弦,一弦一柱思華年。
    莊生曉夢迷蝴蝶,望帝春心托杜鵑。
    滄海月明珠有淚,藍田日暖玉生煙。
    此情可待成追憶,只是當時已惘然。

        讀詩,少不了要說作者的,李商隱(約812年或813年1—約858年),字義山,號玉谿生、樊南生。晚唐詩人。原籍河內懷州(今河南沁陽),祖輩遷滎陽(今河南鄭州)。(此段摘自維基百科)
        這首詩描寫了很多種物,也引用了兩個典故,只有最后一聯寫的是情義。
        首先,我們來看看這首詩里面的物,分別有錦瑟,蝴蝶,杜鵑,滄海,月亮,珍珠,淚水,藍田,太陽,玉,煙等等。除去中間引用的典故,其他基本都是靜物。首先寫錦瑟,這件物事開篇第一句就托出來了,點明全篇,我想當時作者可能是看到了這樣一個錦瑟才引發了感慨,而且感慨頗深,每一弦一個雁柱都讓作者想到了以前的歡樂的時光,可見這件物事對他來說銘心刻骨。然后是蝴蝶和杜鵑,當然這兩個事物是作者引用的典故,其中有莊子的物我相容的典故和望帝的化杜鵑以寄意,可見作者對物的看法,也就進一步點名作者此刻的心情可能是和錦瑟想容了,或者是作者將這個物看作了另一個人,即借物懷人,這個我們日常也曾會有,譬如說有時候你看到一個鐲子,可能和你送給你的朋友的信物很像,多年不見早已忘懷,如今再見,難道在你眼中只看到了那個鐲子么?然后是滄海這一聯,這一聯中一連寫了好多物事,有八個之多吧,其中有像珍珠、玉這樣富貴的物事,也有像淚水,煙那樣易逝讓人悲傷的物事,更有像滄海、月亮、太陽、藍田等亙古不變的物事,可見作者既描寫了漫長,也描寫了短暫,既描寫了歡樂,也描寫了悲傷,然而,快樂并非是永久的,因為點題的兩個物事是淚和煙,可見歡樂的時光很短暫而悲傷和思念卻相當漫長,可見作者思念之深。
        其次,這首詩里有一句是抒情的,此情可待成追憶,只是當時已惘然。那份情義本來是可以去期盼的但現在只能追憶,只是當時已經迷茫了。此句點題也呼應了第一聯看到錦瑟后懷人。
        在這里我突然想起了一些故人,也許當年的吵鬧其實真的沒什么,卻又葬送了一段美好的情義,難道我們不也是迷茫了么?因而,要好好把握現在的這份感情,畢竟在數十億記的人群里,我們相遇,相知,到相愛是多么的不易,何苦非要鬧到以后看到了一些舊物卻只能以淚洗面,借物懷人呢!
        Ps: 在這首詩里的藍田,我在幾年前曾去過,一個本來以玉石聞名的地方現在只有青山依在,綠水長流。可見,就算有的時候是掌握了資源,掌握了財富,若干年后大家也沒什么不同。所以對于那些和我一樣在大都市里尋找角色的朋友,請你們不要悲傷,也不要郁悶,生命很短暫,如何在有限的時間里讓生命更充實,讓生活更輕松,讓自己更快樂才是我們所應該考慮的事情。因為,我們要相信,時間才是仲裁者,一切的不平等,不平均在時間的面前都是泡沫,最后等會消散于無形。另外,藍田值得你去看一下! 
    posted @ 2010-05-14 19:57 Zhjiang 閱讀(203) | 評論 (0)編輯 收藏
    Apache Qpid:
    Wiki上的描述是:
    Apache Qpid is an open source (Apache 2.0 licensed) messaging system which implements the Advanced Message Queuing Protocol. It provides transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support.
    另外 Apache Qpid 還有很多特點,具體請查閱 http://qpid.apache.org/

    OK,不廢話,進入正題,我今天搞了一天才將其配置好,稍微會有一點麻煩,不過還算好用,對于用到Message Queue或者想用的朋友,可以嘗試一下!
    首先進入http://qpid.apache.org/getting-started.html,然后進入download 頁面,由于我是用JAVA來開發,所以我選擇下載Mutiple Component Packages條目下的JAVA broker,client & tools這一個,用C++開發或者其他語言開發的也可以適當選擇下載。另外還有一個適用的工具可以下載是在Management tools條目下面(是一個基于Eclipse RUP 的軟件,由于今天調了半天沒調好所以就不說明了)
    然后回到getting-start那一頁看安裝說明: 在這里我稍微說下吧,反正也很簡單(解壓什么的就略過了)!
    1. 設置環境變量,這里有兩個環境變量需要設置 QPID_HOME 和QPID_WORK,上面的E問很簡單,QPID_WORK是用來設置broker產生文件的路徑,主要是LOG吧。
    2.修改%QPID_HOME%\etc\config.xml文件,主要是修改management下面的<keyStorePath></keyStorePath>的文件路徑,否則直接啟動會出現一個莫名其妙的找不到文件的錯誤
    3.修改%QPID_HOME%\bin\create-example-ssl-strores.bat文件這里要修改三處,將-keystore后面的路徑換成你在第二部設置的文件路徑,這里可以看到這個批處理文件其實用的是%JAVA_HOME%\bin的keytool命令,有關keytool的命令詳解可以看http://shenzhenchufa.blog.51cto.com/730213/169390(這篇不是我寫的,不好轉載,只好給鏈接,但是很詳細)
    4.執行create-example-ssl-strores,然后執行qpid-server命令即可,你可以發現broker很正常的啟動了
    在測試到broker啟動之后可以利用svn Check(https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/)來得到具體例子(PS:什么還不會有SVN???)里面的例子寫的還不錯,很詳細,示例可以導入eclipse中執行,當然,在執行示例的時候如果把broker給關掉了就不能出來結果了,當運行jmsexample下面的Hello.java出現了Hello world時,那么恭喜你,Qpid安裝成功了,然后想干什么就可以具體發揮了!

    對于JMS的Prodcer(PTP)/Publisher(PUB/SUB)執行步驟一般是
    1.通過ConnectionFactroy得到Connection(請注意Qpid示例中properties文件的connectionfactory.xxxxx鍵后面對應的值一般都是amqp://xxxx:xxxx@xxxx/xxx?brokerlist='tcp://localhost:5672'格式的)
    2. 通過Connection獲得一個Session(PTP)/TopicSession(PUB/SUB)
    3. 獲得MessageProducer(PTP)/Topic(PUB/SUB)
    4. 產生/發布消息
    5. 關閉Connection(當關閉Connection的時候,Session 也會自動關閉)
    消費者/訂閱之的執行步驟幾乎差不多,就是第四步是消費/訂閱消息

    好了,今天就寫到這吧,很簡單的介紹,以后再慢慢寫,有什么問題,大家可以共同探討下!
    最后,注意文明用語,謝謝!~~~~

    posted @ 2010-05-14 18:48 Zhjiang 閱讀(1215) | 評論 (0)編輯 收藏
      2010年5月13日
    無聊的PM和無聊的Manager居然想把項目集成為一個永久擴展的框架,于是無辜的我只好又抱著JMS看了一天,我滴神??!什么世道啊!~~

        不過話說回來,JMS還不錯,就是很煩!~~~

        今天就這樣吧,找個時間解釋下JMS的名詞吧,今天太無聊了,而且馬上還要寫一堆的論文,總之一個字,煩!~~~~~~
    posted @ 2010-05-13 18:39 Zhjiang 閱讀(204) | 評論 (0)編輯 收藏
      2010年5月12日
        虛過廿伍載,不曾記片言,如今憶往昔,恍若兩重天。當以勤字訣,隨心記此愿,不想來年似今時,無甚可掛念!

    第一次寫技術blog,有很興奮的感覺,我對Java也不是很熟,屬于剛入門型的,所以估計不能寫出很好的技術文章,不過還是盡我所能,誰叫我入了IT這一行呢,唉!~~~~

    這里以后就是我的小家了,歡迎各位光臨!

    額,時間不早了,眼看就要小班一個小時了,嘿嘿,閃了先,今天就寫一點吧,以后再慢慢來!~
    posted @ 2010-05-12 18:46 Zhjiang 閱讀(132) | 評論 (0)編輯 收藏
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: www免费黄色网| 久青草国产免费观看| 久久免费区一区二区三波多野| 四虎成人精品在永久免费| 亚洲欧美综合精品成人导航| 成人无码区免费视频观看| 亚洲国产福利精品一区二区| 18级成人毛片免费观看| 1区1区3区4区产品亚洲| 成年人视频免费在线观看| 亚洲码在线中文在线观看| 免费在线看v网址| 日本亚洲免费无线码| 永久免费毛片手机版在线看| 亚洲成av人片在线天堂无| 日韩免费无砖专区2020狼| 在线观看免费亚洲| 亚洲一区二区三区无码影院| 99久久精品毛片免费播放| 亚洲va在线va天堂va四虎| 最近免费视频中文字幕大全| 亚洲最大黄色网站| 女人18一级毛片免费观看| 免费人成在线观看播放a| 国产成人精品日本亚洲专区61| 久久精品国产影库免费看| 亚洲欧洲校园自拍都市| 四虎永久免费地址在线网站| sss日本免费完整版在线观看| 亚洲αv在线精品糸列| 成人免费毛片内射美女APP| 特级毛片免费观看视频| 亚洲成色在线综合网站| 午夜国产精品免费观看| 国产91成人精品亚洲精品| 亚洲国产精品VA在线看黑人| 久久久久免费看黄A片APP| 一本岛v免费不卡一二三区| 亚洲黄色在线观看| 免费乱理伦在线播放| 日韩精品极品视频在线观看免费|