ジャワのフィールドマッピングのMyBatisのと多

一貫性のない属性テーブル1.列名データベースとエンティティクラス。

あなたは解決するためにこのresultMapを使用することができます。

    <選択し、ID = "のfindAll" このresultMap = " ユーザマップ "> 
        を選択し、ID、ユーザ名、t_userから年齢
     </ select>の
    < このresultMapタイプ="ユーザー" ID = " ユーザマップ "> 
        <! - ID映射主键プロパティ是实体类的属性名欄是表中的列名   - > 
        <idプロパティ= "ID"列= "ID" /> 
        <resultプロパティ= "名前"欄= "userNameに" /> 
        <プロパティ= "年齢"列を結果=」年齢"/> 
    </このresultMap>

多くの処理MyBatisの2.

表は1つに、多くのユーザーとロールの関係を示しています

3.javaクラス構造

Userクラス:User.java

パブリック クラスユーザーが実装Serializableを{
     プライベート int型のIDを、
    プライベート文字列名;
    プライベート int型の年齢;
    プライベート int型roleId。
    民間の役割の役割。
    公共 INT のgetId(){
         戻りID。
    } 
    公共 ボイド SETID(int型のID){
         この .ID = ID。
    } 
    パブリック文字列のgetName(){
         戻り名。
    } 
    公共 のボイドsetName(文字列名){
         この .nameの= 名前。
    } 
    公共 INT getAge(){
         戻り年齢; 
    } 
    公共 ボイド setAge(int型の年齢){
         この .age = 年齢。
    } 
    公共 INT getRoleId(){
         戻りroleIdと、
    } 
    公共 ボイド setRoleId(INT roleId){
         この .roleId = roleId。
    } 
    公共の役割getRole(){
         戻り役割。
    }
    公共 ボイドsetRole(ロール役割){
         この .role = 役割。
    } 
    @Override 
    パブリック文字列のtoString(){
         戻り "ユーザー[ID =" + ID + "NAME =" +名+ "年齢=" +年齢+ "roleId =" + roleId + "役割=" +役割+ "]" ; 
    } 
}

役割カテゴリ:Role.java

パブリック クラス役割{
     プライベート int型のID。
    プライベート文字列名;
    公共 INT のgetId(){
         戻りID。
    } 
    公共 ボイド SETID(int型のID){
         この .ID = ID。
    } 
    パブリック文字列のgetName(){
         戻り名。
    } 
    公共 ボイドのsetName(文字列名){
         この .nameの= 名前。
    } 
    @Override 
    パブリック文字列のtoString(){
         リターン"ロール[ID =" + ID + "NAME =" +名+ "]" 
    } 
}

4.マッピング関係----二つのテーブルのSQL文を通じて仲間

<マッパー名前空間= "cn.sxt.vo.UserMapper"> 
    <ID = "のfindAll"を選択このresultMap = " ユーザマップを "> 
        UIDとしてu.id選択u.nameのuname、uageとしてu.ageとして
        roleId、R。 RNAMEとして名前t_user U、t_role R 
         ここu.roleId = r.id
     </選択> 
    < このresultMapタイプ= "ユーザー" ID = " ユーザマップ "> 
        < IDのプロパティ=" ID"列= "UID" /> 
        < 結果プロパティ= "名前"欄= "は、uname" /> 
        <結果プロパティ=」マップ関連するオブジェクト - >年齢」欄= "uage" /> 
        <resultプロパティ= "roleId"欄= "roleId" />
        <! - 
        < 関連付けプロパティ= "役割"列= "roleId"のJavaType = "役割"> 
            <idプロパティ= "ID"列= "roleId" /> 
            <結果プロパティ= "名前"欄= "RNAME" /> 
        </関連> 
    </このresultMap> 
</マッパー>

5.テスト

  @Test
     公共 ボイド testFindAll()スローのIOException { 
        SQLSESSIONセッション = MybatisUtil.getSqlSessionを(); 
        リスト <ユーザ>リスト= session.selectList( "cn.sxt.vo.UserMapper.findAll" );
        (ユーザU:リスト){ 
            System.out.printlnは(U)。
        } 
        session.close()。
    }

 

おすすめ

転載: www.cnblogs.com/Vincent-yuan/p/11297527.html