2013年9月11日

          試了N多方法,貌似在終端執行命令:
          export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的。
          =======================
          1.不管用那種ssh客戶端,字體設定一定要設為可以顯示中文的字體。

          2.遠程的locale一定要設置為LANG=zh_CN.UTF-8

          ========================================
          修改/etc/profile

          增加這一行
          export LC_ALL=zh_CN.GBK

          ========================================

          SSH顯示中文亂碼問題
          (1) 打開/etc/sysconfig/i18n
          設置為:
          LANG="zh_CN.GB2312"
          LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
          SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
          SYSFONT="lat0-sun16"
          SYSFONTACM="8859-15"

          其中LANG="zh_CN.GB2312" 是必須的(如果你不想讓中文亂碼的話!!!)
          其它的可以按照自已的需求來改變。
          (2) 打開smb.conf
          添加:

             display charset=cp936
              unix charset=cp936
              doc  charset=cp936
          ========================
          posted @ 2013-09-12 17:23 姚先進 閱讀(255) | 評論 (0)編輯 收藏
           
           與association一樣,collection元素也有兩種形式,現介紹如下:
          一、嵌套的resultMap

                實際上以前的示例使用的就是這種方法,今天介紹它的另一種寫法。還是以教師映射為例,修改映射文件TeacherMapper.xml如下(點擊此處進入嵌套resultMap形式的示例源碼下載頁面。注:本示例代碼是在修改本系列的上篇博文示例代碼的基礎上完成的,用到了MapperScannerConfigurer和注解等知識。對這些知識不熟悉的讀者,可參考上篇博文:http://legend2011.blog.51cto.com/3018495/980150):

          1. <?xmlversion="1.0"encoding="utf8"?>

          2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

          3. <!--與以前一樣,namespace的值是對應的映射器接口的完整名稱-->

          4. <mappernamespace="com.abc.mapper.TeacherMapper">

          5.          <!--TeacherMapper接口中getById方法對應的SQL語句。  

          6.          查詢教師及其指導的學生的信息。由于教師、學生都有  

          7.          id、name、gender等屬性,因此給教師的字段都起了別名-->

          8. <selectid="getById"parameterType="int"resultMap="supervisorResultMap">

          9.           select t.id t_id, t.name t_name, t.gender t_gender,  

          10.           t.research_area t_research_area, t.title t_title,  

          11.           s.id,s.name, s.gender,s.major,s.grade  

          12.           from teacher t,student s where t.id=#{id}  

          13.           and s.supervisor_id = t.id  

          14. </select>

          15. <!--教師實體映射-->

          16. <resultMapid="supervisorResultMap"type="Teacher">

          17. <idproperty="id"column="t_id"/>

          18. <resultproperty="name"column="t_name"/>

          19. <resultproperty="gender"column="t_gender"/>

          20. <resultproperty="researchArea"column="t_research_area"/>

          21. <resultproperty="title"column="t_title"/>

          22.             <!--需要注意的是,上面的select語句中學生的字段名/別名應與  

          23.             下面的column屬性一致。ofType指collection包含的元素的類型,  

          24.             此屬性不可少-->

          25. <collectionproperty="supStudents"ofType="Student">

          26. <idproperty="id"column="id"/>

          27. <resultproperty="name"column="name"/>

          28. <resultproperty="gender"column="gender"/>

          29. <resultproperty="major"column="major"/>

          30. <resultproperty="grade"column="grade"/>

          31.                <!--映射學生的指導教師屬性,用到了  

          32.                supervisorResultMap本身-->

          33. <associationproperty="supervisor"

          34. resultMap="supervisorResultMap"/>

          35. </collection>

          36. </resultMap>

          37. </mapper>

                運行程序結果如下: 

                 與以前的寫法相比,這種寫法的缺點是學生實體映射被嵌入到教師實體映射中,因此學生實體映射不能被重用。

          二、嵌套的select語句

                這種方式是使用一條單獨的select語句來加載關聯的實體(在本例中就是學生實體),然后在collection元素中引用此select語句(注:此方法會產生N+1問題,關于這個問題可參考本系列博客中的“MyBatis中的N+1問題”)。首先修改TeacherMapper.xml如下(點擊此處進入嵌套select語句形式示例源碼下載頁面):

          1. <?xmlversion="1.0"encoding="utf8"?>

          2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

          3. <!--與以前一樣,namespace的值是對應的映射器接口的完整名稱-->

          4. <mappernamespace="com.abc.mapper.TeacherMapper">

          5.          <!--TeacherMapper接口中getById方法對應的SQL語句。  

          6.          查詢教師的信息。-->

          7. <selectid="getById"parameterType="int"resultMap="supervisorResultMap">

          8.           select * from teacher where id=#{id}  

          9. </select>

          10. <!--教師實體映射-->

          11. <resultMapid="supervisorResultMap"type="Teacher">

          12. <idproperty="id"column="id"/>

          13. <resultproperty="name"column="name"/>

          14. <resultproperty="gender"column="gender"/>

          15. <resultproperty="researchArea"column="research_area"/>

          16. <resultproperty="title"column="title"/>

          17.             <!--ofType指collection包含的元素的類型,此屬性不可少。  

          18.             column屬性指把上述的getById的select語句中的教師id列的值作為參數  

          19.             傳遞給將要引用到的下述的getStudents的select語句,此屬性不可少。  

          20.             引用的形式為:命名空間.select語句id-->

          21. <collectionproperty="supStudents"column="id"ofType="Student"

          22. select="com.abc.mapper.StudentMapper.getStudents"/>

          23. </resultMap>

          24. </mapper>

                 在這里把根據指導教師id查詢學生信息的SQL語句寫在StudentMapper.xml中,并引用其中的學生實體映射studentResultMap。修改StudentMapper.xml如下:

          1. <?xmlversion="1.0"encoding="utf8"?>

          2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

          3. <mappernamespace="com.abc.mapper.StudentMapper">

          4. <resultMapid="studentResultMap"type="Student">

          5. <idproperty="id"column="id"/>

          6. <resultproperty="name"column="name"/>

          7. <resultproperty="gender"column="gender"/>

          8. <resultproperty="major"column="major"/>

          9. <resultproperty="grade"column="grade"/>

          10.           <!--在這里引用supervisorResultMap和getById,亦采用  

          11.           命名空間名.相關元素id的形式。column="supervisor_id"

          12.           屬性不可少-->

          13. <associationproperty="supervisor"

          14. resultMap="com.abc.mapper.TeacherMapper.supervisorResultMap"

          15. select="com.abc.mapper.TeacherMapper.getById"column="supervisor_id"/>

          16. </resultMap>

          17. <!--根據指導教師id查詢學生信息-->

          18. <selectid="getStudents"parameterType="int"

          19. resultMap="studentResultMap">

          20.             select * from student where supervisor_id = #{id}  

          21. </select>

          22. </mapper>

                執行結果如下:

          posted @ 2013-09-11 13:44 姚先進 閱讀(415) | 評論 (0)編輯 收藏
           
          主站蜘蛛池模板: 牡丹江市| 永靖县| 富阳市| 贞丰县| 天柱县| 文成县| 青神县| 桂东县| 平罗县| 河池市| 杂多县| SHOW| 垣曲县| 虎林市| 雷州市| 蒲江县| 道孚县| 乌恰县| 丘北县| 南丹县| 丰顺县| 榆中县| 洛浦县| 麻江县| 太和县| 陈巴尔虎旗| 长寿区| 南通市| 南部县| 西平县| 成武县| 闽侯县| 比如县| 外汇| 云梦县| 南华县| 离岛区| 凌源市| 大足县| 乡城县| 施甸县|