zoukankan      html  css  js  c++  java
  • 【原创】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();
           }

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

  • 相关阅读:
    jsp session练习简单的登录
    JSP练习:编写登录程序,错误时跳转
    1.JSON抓取文件解析文件
    java ee 在数据库中执行增删改查
    java ee cookie方法键值对输出
    java ee cookie方法包括在cookie输出的中文转换
    java编写在数据库中按条件查询数据
    java 在数据库中添加新信息
    java ee 输出三角形
    java ee 五的阶乘
  • 原文地址:https://www.cnblogs.com/meetweb/p/2765884.html
Copyright © 2011-2022 走看看