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 条评论
登录 后参与评论

相关文章

来自专栏电光石火

SQL 性能调优

我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! (1)选择最有效率的表名顺序(只在基于规则的优...

2086
来自专栏小白安全

小白博客 MySQL日期时间函数大全

DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEE...

28910
来自专栏跟着阿笨一起玩NET

通过存储过程进行分页查询的SQL示例

771
来自专栏跟着阿笨一起玩NET

SQL Server 2008中增强的汇总技巧

SQL Server 2008中对汇总有明显的增强,有点像Oracle的语法了。请看下面五个例子:

903
来自专栏james大数据架构

通用分页存储过程

/*通用分页存储过程*/ USE HotelManagementSystem GO IF EXISTS(SELECT * FROM sys.objects WH...

1958
来自专栏颇忒脱的技术博客

数据库时区那些事儿 - Oracle的时区处理

当JVM时区和数据库时区不一致的时候,会发生什么?这个问题也许你从来没有注意过,但是当把Java程序容器化的时候,问题就浮现出来了,因为目前几乎所有的Docke...

2274
来自专栏数据分析

[数据库基础]——编码标准之格式

代码就像家里的各种物品,格式化就好比对家中物品的排放。家中的物品随便怎么放,物品都不会反对,房子也不会介意,但是物品的排放合理、规整,会让家里变得更具有美感。代...

2758
来自专栏乐沙弥的世界

避免游标多次遍历

游标在数据库领域被广泛使用,尤其是对于需要将SQL语句返回的数据集进行逐行处理的时候。这为数据处理提供了极大的便利性,然游标的不当 使用从某种程度...

672
来自专栏猿人谷

Oracle SQL性能优化

(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最...

2457
来自专栏nummy

A pivoting die 解法

511

扫码关注云+社区