IBatis一对多查询

 

 public  class User
    {
      public int UserId { get; set; }
      public string UserName { get; set; }

      
    }

    public class UserRight
    {
        public int UserRightId { get; set; }
        public int UserId { get; set; }
        public int RightId { get; set; }
        public string RightName { get; set; }
    }

    public class UserRightJoin
    {
        public int UserId { get; set; }
        public string UserName { get; set; }

        public IList<UserRight> UserRights { get; set; }
    }

  在Mapper的UserRight.xml中

<?xml version="1.0" encoding="utf-8" ?>
<!--<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">-->
<sqlMap namespace="User"  xmlns="http://ibatis.apache.org/mapping"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <alias>
    <typeAlias alias="User" type="IBatis.User"/>
    <typeAlias alias="UserRight" type="IBatis.UserRight"/>
    <typeAlias alias="UserRightJoin" type="IBatis.UserRightJoin"/>
    
  </alias>
  <resultMaps>
    <resultMap id="UserRightReslut" class="UserRight">
      <result property="UserRightId" column="UserRightId"/>
      <result property="UserId" column="UserId"/>
      <result property="RightId" column="RightId"/>
      <result property="RightName" column="RightName"/>
    </resultMap>
    <resultMap id="UserReslut" class="User">
      <result property="UserId" column="UserId"/>
      <result property="UserName" column="UserName"/>
      
    </resultMap>
  
    <resultMap id="UserRightJoinReslut" class="UserRightJoin" extends="UserReslut" groupBy="UserId">
      <result property="UserRights" resultMapping="User.UserRightReslut"  />
    </resultMap>

  
    
  </resultMaps>
  <statements>
    <select id="selectAllUserRight" resultMap="UserRightJoinReslut">
      select A.*,b.*
      from  [dbo].[User] a join [userright] b on a.userid=b.userid
    </select>
   
  </statements>
</sqlMap>

  

在 sqlmap.config

<?xml version="1.0" encoding="utf-8" ?>
<!--<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">-->
<sqlMap namespace="User"  xmlns="http://ibatis.apache.org/mapping"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <alias>
    <typeAlias alias="User" type="IBatis.User"/>
    <typeAlias alias="UserRight" type="IBatis.UserRight"/>
    <typeAlias alias="UserRightJoin" type="IBatis.UserRightJoin"/>
    
  </alias>
  <resultMaps>
    <resultMap id="UserRightReslut" class="UserRight">
      <result property="UserRightId" column="UserRightId"/>
      <result property="UserId" column="UserId"/>
      <result property="RightId" column="RightId"/>
      <result property="RightName" column="RightName"/>
    </resultMap>
    <resultMap id="UserReslut" class="User">
      <result property="UserId" column="UserId"/>
      <result property="UserName" column="UserName"/>
      
    </resultMap>
  
    <resultMap id="UserRightJoinReslut" class="UserRightJoin" extends="UserReslut" groupBy="UserId">
      <result property="UserRights" resultMapping="User.UserRightReslut"  />
    </resultMap>

  
    
  </resultMaps>
  <statements>
    <select id="selectAllUserRight" resultMap="UserRightJoinReslut">
      select A.*,b.*
      from  [dbo].[User] a join [userright] b on a.userid=b.userid
    </select>
   
  </statements>
</sqlMap>

  

 

然后是 DAO 

    public class BaseDao
    {
        public static ISqlMapper _sqlMap = null;
        static BaseDao()
        {
              _sqlMap = Mapper.Instance();
        }
    }

public class UserDao : BaseDao
    {
        public IList<UserRightJoin> GetList()
        {
            ISqlMapper mapper = _sqlMap;
            IList<UserRightJoin> ListPerson = mapper.QueryForList<UserRightJoin>("selectAllUserRight", null);  //这个"SelectAllPerson"就是xml映射文件的Id
            return ListPerson;
        }
 
        
        public decimal GetAmount()
        {
            ISqlMapper mapper = _sqlMap;
            decimal r = mapper.QueryForObject<decimal>("selectAmount", null);  //这个"SelectAllPerson"就是xml映射文件的Id
            return r;
        }

    }

  

 

最后是调用 

 

static void Main(string[] args) 
{ 
UserDao ud=new UserDao(); 
var lst= ud.GetList(); 
}

  

转载于:https://www.cnblogs.com/zhshlimi/p/5535788.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值