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

相关文章

来自专栏Laoqi's Linux运维专列

Mysql 通过全量备份和binlog恢复整体数据

8637
来自专栏杨建荣的学习笔记

物化视图刷新的问题及分析(61天)

最近现场需要搭建一套全新的环境,对于数据字典的管理采用了物化视图,因为数据量不大,采用了全量刷新的方式。因为有好几套环境,有几套环境是通过db link和主节点...

3317
来自专栏逸鹏说道

SQL Server 重新组织生成索引

概述 无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库...

3488
来自专栏程序猿

Mssql高级注入笔记

暴库特殊技巧::%5c='\' 或者把/和\ 修改%5提交 and 0<>(select count(*) from master.dbo.sysdatabas...

3667
来自专栏坚毅的PHP

mysql DUPLICATE KEY UPDATE 问题

DUPLICATE KEY UPDATE batch执行时出死锁错误 背景知识 一、 mysql  insert 与 duplicate key: 典型的插入语...

4265
来自专栏漫漫全栈路

Oracle 学习笔记

前言 本贴内容纪录Oracle课程中的学习笔记,和Oracle的课后作业,以及数据库相关课程的学习笔记,笔记部分使用实例代码记录,不记详细语法。 用户管理...

3335
来自专栏码云1024

sql 复习练习

4026
来自专栏zcqshine's blog

Mysql Packet for query is too large解决方法

3827
来自专栏维C果糖

出现 DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9 错误的原因及解决方法

1 错误描述 在通过「DbVisualizer」执行 SQL 语句插入数据的时候,报出如下错误: ? 2 错误原因 通过观察上述标记出来的错误描述: DB2 ...

2205
来自专栏沃趣科技

会话和锁信息查询视图 | 全方位认识 sys 系统库

在上一篇《等待事件统计视图 | 全方位认识 sys 系统库》中,我们介绍了sys 系统库中的等待事件统计视图,本期的内容先给大家介绍会话信息和锁等待信息查询视图...

1140

扫码关注云+社区