对于Mybatis在C#.Net中个人使用的总结(一) Mybatis 的结果映射

(图片中的文字上传之后就都看不清,我再图片的下边会用斜体字标清)

首先我在项目中使用Mybatis 是用XML完成映射的。至于XML这门语言,其实很简单的(对于入门来说,因为我是刚入门~),如果你还不是很了解,可以去下载一本《无废话XML》台湾人写的,总体来说  内容很紧凑,非常适合入门。好接下来转入正题:

 

大致氛围这四个部分一般来说前两个部分写好之后就不会再改变了   后两个则根据具体的情况  增加

下边介绍结果映射部分

(图片中的文字,1 头部分用于表示xml的版本号以及其他各种属性的设置

2申明部分表示mybatis 的映射 所对应的实体

3结果映射查询的实体结果 是如何实现一一映射的

4声明语句 包括增删改查各种东东)

首先要用 sqlMap 的关键字包含住,其次   结果映射要放在 ResultMaps 中

一般我会把结果映射部分也就是此处的Cartonresult分为两部分一类是里边的值字段(包括字符串和数值)另外一部分是引用类型(也就是Carton中的  引用字段比如Company实体)对于前半部分我会使用Extends 直接关联映射(也可放在底下直接写映射语句可是没有这样的可读性强)对于后半部分采用的就是如图中的  使用关联字段  去对应的XML如(company)中寻找对应id (如 getobject)的查询语句进行查询。最后会将得到的company实体安装到  Carton这个实体的对应属性字段上 

(图片中的文字 1、外联映射部分

2、使用company sysNo  去company 的映射列表中 使用getobject 映射 获取到company 实体 最后赋值到Carton 的company字段上)

(图中文字,左边是 实体中的字段,右边是 数据库中的字段或 得到的数据源)

 

代码

 

<resultMapid="AbstractResult"class="Carton">

      <resultproperty="SysNo" column="SysNo" />

      <resultproperty="CustomerID" column="CustomerID"/>

      <resultproperty="CartonType" column="CartonType"/>

      <resultproperty="CartonCode" column="CartonCode"/>

      <resultproperty="RCUserName" column=    "RCUserName"/>

      <resultproperty="LoadUserName" column="LoadUserName"/>

      <resultproperty="LoadDateTime" column="LoadDateTime"/>

    </resultMap>

  

    <resultMapid="CartonResult" class="Carton" extends="AbstractResult">

      <resultproperty="CartonDetailList" column="SysNo" select="CartonDetail.GetByCartonSysNo"/>

      <resultproperty="Company" column="CompanySysNo" select="Company.GetObject"/>

      <resultproperty="Warehouse" column="WarehouseSysNo" select="Warehouse.GetObject"/>

    </resultMap>

 

转载于:https://www.cnblogs.com/jilodream/p/4219893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于Mybatis在insert嵌套子查询的问题,可以使用Mybatis的动态SQL语句来实现,具体方法如下: 1. 在mapper文件定义一个包含子查询的SQL语句,比如: ``` <select id="getUserIdByName" parameterType="java.lang.String" resultType="java.lang.Integer"> SELECT user_id FROM user WHERE user_name = #{name} </select> ``` 2. 在insert语句使用动态SQL语句来调用子查询,比如: ``` <insert id="insertOrder" parameterType="Order"> INSERT INTO order (order_no, user_id, order_time) VALUES (#{orderNo}, #{userId, jdbcType=INTEGER}, #{orderTime}) <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> </insert> ``` 其,#{userId, jdbcType=INTEGER}是插入语句的一个参数,它的值通过调用getUserIdByName子查询来获取。 关于Mybatis查询结果resultMap的使用概述,可以参考以下几点: 1. resultMap是Mybatis用于映射查询结果集的标签,它可以将查询结果集的列名映射Java对象的属性名。 2. resultMap标签可以定义在mapper文件,也可以定义在公共的resultMap文件,以便在多个mapper文件复用。 3. resultMap标签支持多种映射方式,如一对一、一对多、多对一、多对多等,可以根据查询结果集的实际情况选择不同的映射方式。 4. resultMap标签还支持映射嵌套对象、映射对象属性、映射枚举值等高级功能,可以根据具体情况选择使用。 总之,Mybatis的resultMap标签是非常强大且灵活的,可以帮助我们快速、方便地实现查询结果集的映射

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值