• 【原创】OOP编程iBatis 学习笔记之四 多表关联查询表达


    两个表的类如上一篇<<2个表关联查询>>

    这里讨论的是使用我们习惯的inner joinSql语句来关联我们的数据表

    唯一有区别的在这里

    Book.xml

    <resultMap id="get-book-note" class="com.it.Book" groupBy="Book.oid">
     <result property="oid" column="oid"/> 
     <result property="name" column="name"/> 
       <result property="notes" resultMap="get-note" /> 
    </resultMap>

    <resultMap id="get-note" class="Note">
    <result property="sid" column="sid" />
    <result property="sname" column="sname" />
    </resultMap>

    <select id="getProduct" resultMap="get-book-note">
     <![CDATA[ 

     SELECT

    book.oid,

    book.name,

    note.sid,

    note.sname

    FROM 

     book,note where note.book_oid = book.oid

     
    ]]> 
    </select>

    注意点 : 1. Sql语句中出现的所有字段,都必须在resultMap中有体现,否则查询出来的字段默认为null;

             2. 父表关联子表,需要加

             <result property="notes" resultMap="get-note" />

    其中property必须在类里有相关的notes属性及其方法来获取子类,后取得结果必须是子类的resultMap Id

           3. select 语句中的resultMap对应于父类的resultMap的名称

    测试语句’Main.java

     

    //测试2个表关联  author :meetweb  
           try {
               Book Book1 =new Book();
               Book1.setOid(1);
               List<Book> books=sqlMapClinet.queryForList("getProduct");
               System.out.println(books.size());
                for (Iterator iterator = books.iterator(); iterator.hasNext();) {
              Book Bookk = (Book) iterator.next();
             System.out.println(Bookk.getName());
          List<Note> l=Bookk.getNotes();
          System.out.println(((Note)l.get(0)).getSname());
               }
           } catch (SQLException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }

    原创作品,转载请注明作者

  • 相关阅读:
    Asp.net上传文件,过滤不符合要求格式的文件
    取得文件真正扩展名类型
    ORA12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
    Android显示图片自适应(控件+网页)
    Android代码资源的国际化
    Eclipse下加载Android SDK源码
    Android 中Webview 自适应屏幕
    网页图片缩放(js)
    android webview 缩放及换行
    subclipse用法
  • 原文地址:https://www.cnblogs.com/meetweb/p/2765884.html
Copyright © 2020-2023  润新知