mybaties 的一些点

resultMap

resutType

mybaties缓存

待续

mybaties对应关系是bean和数据库字段的对应。

1、mybaties 的返回值是对象的话定义为resultMap="resultMap"

值resultMap在文件首部进行重定义避免返回值为空,现在对象存储都是hashmap如下所示       

<resultMap id="resultMap" type="java.util.HashMap">
        <result column="USER_ID" property="userId" jdbcType="BIGINT" />
        <result column="USER_ERP" property="erp" jdbcType="VARCHAR" />
        <result column="USER_NAME" property="name" jdbcType="VARCHAR" />
        <result column="USER_EMAIL" property="email" jdbcType="VARCHAR" />
        <result column="USER_PHONE" property="phone" jdbcType="VARCHAR" />
        <result column="USER_ROLE" property="role" jdbcType="VARCHAR" />
    </resultMap>
    <insert id="add" parameterType="com.jd.app.server.irp.common.beans.User">
        INSERT INTO irp_user (
        USER_ID,
        USER_ERP,
        USER_NAME,
        USER_EMAIL,
        USER_PHONE,
        USER_ROLE)
        VALUES (
        #{userId,jdbcType=BIGINT},
        #{erp,jdbcType=VARCHAR},
        #{name,jdbcType=VARCHAR},
        #{email,jdbcType=VARCHAR},
        #{phone,jdbcType=VARCHAR},
        #{role,jdbcType=VARCHAR})
    </insert>
    <select id="getUserByErp" resultMap="resultMap" parameterType="java.lang.String">
        SELECT USER_ID,
        USER_ERP,
        USER_NAME,
        USER_EMAIL,
        USER_PHONE,
        USER_ROLE
        FROM irp_user
        WHERE 1=1
        AND USER_ERP = #{erp,jdbcType=VARCHAR}
    </select>

2.mybaties分页dao不需要包含分页字段,sql传值需要注意到将分页值传参数为#{0},#{1}如下所示

<select id="getUsersByPage" resultMap="resultMap" parameterType="java.lang.Integer">
SELECT USER_ID,
USER_ERP,
USER_NAME,
USER_EMAIL,
USER_PHONE,
USER_ROLE
FROM irp_user
LIMIT #{0},#{1}
</select>

 3.ibaties获取单个对象

ibaties 需要bean对象和xml中的字段对应,需要字段生成映射。通过对应关系建立bean和数据库的

对应关系。

 <resultMap id="userMap" type="com.jd.app.server.irp.common.beans.User" >
        <id column="USER_ID" property="userId" jdbcType="BIGINT" />
        <result column="USER_ERP" property="erp" jdbcType="VARCHAR" />
        <result column="USER_NAME" property="name" jdbcType="VARCHAR" />
        <result column="USER_EMAIL" property="email" jdbcType="VARCHAR" />
        <result column="USER_PHONE" property="phone" jdbcType="VARCHAR" />
        <result column="USER_ROLE" property="role" jdbcType="VARCHAR" />
    </resultMap>
<select id="getUserById" resultMap="userMap" parameterType="java.lang.Long">
        SELECT * FROM irp_user WHERE 1=1 AND USER_ID = #{userId,jdbcType=BIGINT}
    </select>

userMap的type类型为bean这样实现了bean和数据库的关联对应。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个线上缓存异常

      最近线上应用发现了一个问题,系统启动构建缓存会出现缓存数据为空的情况,仔细分析整个流程 ,开始以为是代码疏忽导致bug,后来在仔细分析整个流程发现是由于a缓...

    杉枫
  • grpc 使用流程、使用技巧

    1、通过maven插件编译出java stub类。 2、对于批量调用的场景,我们可以使用FutureStub,对于普通的业务类型RPC,我们应该使用Blocki...

    杉枫
  • netty使用从0到1

     本周强总在组内做了netty分享,内容相当不错,趁着这次分享记录的,以及以前研究,进行一下记录。 ?        java io形式存在三种,一种是BIO传...

    杉枫
  • 1046 划拳 (15 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • 使用 DBMS_REPAIR 修复坏块

           对于Oracle数据块物理损坏的情形,在我们有备份的情况下可以直接使用备份来恢复。对于通过备份恢复,Oracel为我们提供了很多种方式,冷备,基于...

    Leshami
  • 这些Spring中的设计模式,你都知道吗?

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。

    美的让人心动
  • 了解一下Spring中用了哪些设计模式?这样回答面试官才稳

    又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。

    JAVA葵花宝典
  • 重磅!微信也能轻松免费下载文献的PDF了!

    为什么突然聊到这样的一个工具呢?因为小编今天在手机上看到一篇有意思的论文,准备去下载,但是一打开网页就是

    科研菌
  • 追加10亿!腾讯宣布设立15亿元“战疫基金”

    ? 刚刚,腾讯宣布设立15亿元“抗击新型冠状病毒感染肺炎疫情综合保障基金”(以下简称战疫基金)。 这是腾讯在设立首期3亿元疫情防控基金、2亿元战疫开发者公益联...

    腾讯SaaS加速器
  • DPN-双路径网络(图像分类)

    在这篇文章中,我们会简要的回顾DPN网络。这是由新加坡国立大学,北京理工大学,国防科技大学和奇虎360人工智能研究所共同完成的作品。ResNet支持特征的重复使...

    AI研习社

扫码关注云+社区

领取腾讯云代金券