ibatis 复杂类型属性(自定义类型的属性) 避免n+1次select(1:1)

来源:互联网 发布:linux查看网关 编辑:程序博客网 时间:2024/06/06 02:37

  上篇文章写了有关ibatis复杂类型属性,只是无论何时加载包含类,都要执行两个sql语句,且只能单条提取。现在更新了一下,比方说要提取含有10条记录的语句查询,只需要执行11次sql语句查询,具体如下

 

首先

首先,我的两个表tablea和tableb

tablea: String id;

            String nameid;

tableb: String nameid;

            String name;

然后,VO类

tablea:String id

            String nameid;

            tableb tableb;

tableb:String nameid;

            String name;

sqlmap配置:

<sqlMap>

<typeAlias alias="tableb" type="net.winclass.modules.testquestion.vo.tableb"/>
   
   <resultMap id="tablea" class="net.winclass.modules.testquestion.vo.tablea" >
       <result property="id" column="id"/>
       <result property="nameid" column="nameid"/>  
       <result property="tableb.name" column="name" />
    </resultMap>
   
    <select id="tablea_sel" parameterClass="String" resultMap="tablea">
        select * from tablea,tableb where tablea.nameid=tableb.nameid
    </select>

</sqlMap>

这样提取的数据是List类型的,然后分别在Dao层,service,action以及Jsp页面传递list类型的数据即可,成功~

 

原创粉丝点击