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

相关文章

来自专栏青枫的专栏

day05_MySQL学习笔记_02

    注:每个表中至少要有一个主键。 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 

622
来自专栏深度学习之tensorflow实战篇

SQL处理表结构的基本方法整理(创建表,关联表,复制表)

复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 只复制表结构到新表 CREATE TABLE 新表 SELECT * ...

3714
来自专栏Hongten

java开发_mysql中获取数据库表描述_源码下载

我们需要获取表:test_table表的描述信息,然后把描述信息插入到表:data_element_config中记录结果

772
来自专栏Spring相关

mysql 查询当天、本周,本月,上一个月的数据

DATE_ADD(createTime,INTERVAL 1 DAY) 得到指定日期后一天的日期/把1改为任意数字就可以得到后N天的日期

583
来自专栏乐沙弥的世界

PL/SQL --> DBMS_DDL包的使用

为了便于建立性能良好的PL/SQL程序,Oracle提供了大量的系统包供使用。Oracle提供的这些包扩展并增强了数据库的一些功能,以及突

824
来自专栏MYSQL轻松学

MYSQL常用SQL汇总

1、查看当前应用连接,连接数突增排查 select user,SUBSTRING_INDEX(host,':',1) as ip , count(*) as c...

3026
来自专栏散尽浮华

mysql操作命令梳理(2)-alter(update、insert)

在mysql运维操作中会经常使用到alter这个修改表的命令,alter tables允许修改一个现有表的结构,比如增加或删除列、创造或消去索引、改变现有列的类...

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

MySQL和Oracle中唯一性索引的差别(r12笔记第83天)

今天在修复MySQL数据的时候,发现一个看起来“奇怪”的问题。 有一个表里存在一个唯一性索引,这个索引包含3个列,这个唯一性索引的意义就是通过这3个列...

3256
来自专栏www.96php.cn

mysql 快速生成百万条测试数据

1、生成思路 利用mysql内存表插入速度快的特点,先利用函数和存储过程在内存表中生成数据,然后再从内存表插入普通表中 2、创建内存表及普通表 CREATE T...

45312
来自专栏乐沙弥的世界

Oracle 索引监控与外键索引

      Oracle 监控索引特性为我们提供了一个大致判断索引是否被使用的情形。之所以这么说,是因为在Oracle 10g 中收集统计信息时会导致索引被监控...

672

扫码关注云+社区