• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mybatis属性详解

mybatis属性详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mybatis等相关知识,希望本文的分享对您有所帮助

前言

MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而resultMap就是结果集映射的配置标签了。
在深入ResultMap标签前,我们需要了解从SQL查询结果集到JavaBean或POJO实体的过程。

从SQL查询结果到领域模型实体 

  1. 通过JDBC查询得到ResultSet对象

  2. 遍历ResultSet对象并将每行数据暂存到HashMap实例中,以结果集的字段名或字段别名为键,以字段值为值

  3. 根据ResultMap标签的type属性通过反射实例化领域模型

  4. 根据ResultMap标签的type属性和id、result等标签信息将HashMap中的键值对,填充到领域模型实例中并返回

一、resultMap

1、属性说明

  • id属性 ,resultMap标签的标识。

  • type属性 ,返回值的全限定类名,或类型别名。

  • autoMapping属性 ,值范围true(默认值)|false, 设置是否启动自动映射功能,自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法。而设置为false后,则需要在resultMap内明确注明映射关系才会调用对应的setter方法。

2、基本作用:建立SQL查询结果字段与实体属性的映射关系
示例1:通过setter构造领域模型

public class EStudent{  private long id;  private String name;  private int age;  // getter,setter方法  /**
   * 必须提供一个无参数的构造函数
   */  public EStudent(){}
}
<select id="getStudent" resultMap="getStudentRM">
  SELECT ID, Name, Age
    FROM TStudent
</select>
<resultMap id="getStudentRM" type="EStudnet">
  <id property="id" column="ID"/>
  <result property="studentName" column="Name"/>
  <result property="studentAge" column="Age"/>
</resultMap>

子元素说明:

  • id元素 ,用于设置主键字段与领域模型属性的映射关系

  • result元素 ,用于设置普通字段与领域模型属性的映射关系

id、result语句属性配置细节:

属性描述
property需要映射到JavaBean 的属性名称。
column数据表的列名或者标签别名。
javaType一个完整的类名,或者是一个类型别名。如果你匹配的是一个JavaBean,那MyBatis 通常会自行检测到。然后,如果你是要映射到一个HashMap,那你需要指定javaType 要达到的目的。
jdbcType数据表支持的类型列表。这个属性只在insert,update 或delete 的时候针对允许空的列有用。JDBC 需要这项,但MyBatis 不需要。如果你是直接针对JDBC 编码,且有允许空的列,而你要指定这项。
typeHandler使用这个属性可以覆写类型处理器。这项值可以是一个完整的类名,也可以是一个类型别名。

示例2:通过构造函数构造领域模型

<select id="getStudent" resultMap="getStudentRM">
  SELECT ID, Name, Age
    FROM TStudent</select><resultMap id="getStudentRM" type="EStudnet">  <constructor>    <idArg column="ID" javaType="_long"/>    <arg column="Name" javaType="String"/>    <arg column="Age" javaType="_int"/>  </constructor></resultMap>

子元素说明:

  • constructor元素 ,指定使用指定参数列表的构造函数来实例化领域模型。注意:其子元素顺序必须与参数列表顺序对应

  • idArg子元素 ,标记该入参为主键

  • arg子元素 ,标记该入参为普通字

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05关于关联数据库的10篇文章推荐
  • 2018-12-05Oracle数据库索引的维护
  • 2017-05-11命令行模式下备份、还原 MySQL 数据库的语句小结
  • 2018-12-05mysql-MySQL数据库能转换成SQLServer吗?我有一个MySQL的脚本文件怎么才能在SQLServer里操作
  • 2017-05-11mysqli预处理编译的深入理解
  • 2018-12-05mysql存储引擎和数据类型(二)_MySQL
  • 2018-12-05EXECUTE IMMEDIATE用法小结
  • 2018-12-05SQL小技巧 又快又简单的得到你的数据库每个表的记录数
  • 2018-12-05centos下mysql主从同步快速设置步骤分享
  • 2018-12-05mysql 协议的ColumnDefinition包及解析代码详情

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 浅析一个MYSQL语法(在查询中使用count)的兼容性问题
    • Mysql中的触发器简单介绍及使用案例
    • MYSQL基础之连接MYSQL、修改密码、添加用户
    • mysql一些使用技巧 的图文详细介绍
    • Oracle case when用法
    • mysql数据类型存储需求及如何选择正确的类型
    • 数据库sql select查询的工作原理
    • 关于派生表的详细介绍
    • sql 多表连接查询
    • MySQL之-查询/删除重复记录的方法大全详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有