Mybatis 结果集映射】的更多相关文章

之前的数据库图简单都是纯小写格式,这一次做项目为了显得正规一些,模拟实际的情况,采用了驼峰命名的规则,这时候就遇到了结果匹配的问题. 之前只要 <select id="select" parameterType="map" resultType="xxxx"> 就可以自动匹配,这一次我也以为可以,但是实际测试的时候发现能查到数据,可是数据无法传输出来,我以为是sql语句出现了问题,数据库不认识xx_xx这种写法的原因,但是通过myba…
结果映射(resultMap) constructor - 用于在实例化类时,注入结果到构造方法中(一般不用) idArg - ID 参数:标记出作为 ID 的结果可以帮助提高整体性能 arg - 将被注入到构造方法的一个普通结果 id – 一个 ID 结果:标记出作为 ID 的结果可以帮助提高整体性能 result – 注入到字段或 JavaBean 属性的普通结果 association – 一个复杂类型的关联:许多结果将包装成这种类型 嵌套结果映射 – 关联本身可以是一个 resultMa…
一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public interface EmployeeMapper { public Employee getEmpById(Integer id); } mapper定义: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTY…
单行结果集映射: 接口中方法返回值定义为Map类型,sql语句的resultType属性设置为map即可.这种情况默认把列名作为key,列中的值作为value. 也就是说用map<Strirng,Object>接收,一个map集合对应查询结果所封装的一个对象(一行数据对应一个对象) 多行结果集映射: List<Map<String,Object>>接收,存放查询出来的多个对象 如果有一些特殊的情况,比如需要使用id值作为key,把一行数据封装成的对象作为value放到m…
ResultMap的使用 在Mybatis中,可以使用resultMap(结果集映射)作为sql的返回类型 一般用来解决如下问题: 数据库表字段名和实体类属性名不一致的问题: 多对一问题: 例如:多个学生对应同一个老师,查询每个学生信息(包含老师对象属性) 一对多问题: 例如:一个老师教学多个学生,查询某个老师信息及其属下学生(包含学生列表) 1.字段名和属性名不一致问题 数据库表字段名和实体类属性名不一致的问题处理 id name pwd //数据库字段名 id name password /…
解决属性名与字段名不一致的问题 新建项目 --> 测试实体类字段不一致的情况 数据库字段:id,name,pwd 实体类属性:id,name,password 输出结果 User{id=1, name='Iris', pwd='null'} 产生原因 SELECT * FROM user WHERE id = #{id}; SELECT id,name,pwd FROM user WHERE id = #{id} 解决方案 别名 SELECT id,name,pwd as password FR…
目录 1 成员变量 2 构造函数 3 其他函数 3.1 setter 和 getter 函数 4 静态内部类 4.1 成员变量 4.2 构造函数 4.3 建造者相关的函数 4.4 获取配置的构造方法参数列表 一起学 mybatis @ ResultMap 对应的是结果集 <resultMap>中的一个结果集. 其基本组成部分中, 含有 ResultMapping 对象. 其组成大致如下: 本文, 主要讲解一下该类的组成. 1 成员变量 // resultMap 节点的 id private S…
1. 前言 resultMap 元素是 MyBatis 中最重要最强大的元素.它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作.实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的数千行代码.ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了. resultMap 可以将查询到的复杂数据,比如多张表的数据…
org.apache.ibatis.binding.MapperMethod中execute方法 ...} else if (method.returnsMap()) { result = executeForMap(sqlSession, args); } else {... private <K, V> Map<K, V> executeForMap(SqlSession sqlSession, Object[] args) { Map<K, V> result;…
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration> <…
什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再去加载关联信息. 设置延迟加载 需要在SqlMapConfig.xml文件中,在<settings>标签中设置下延迟加载. lazyLoadingEnabled.aggressiveLazyLoading 设置项 描述 允许值 默认值 lazyLoadingEnabled 全局性设置懒加载.如果设为'false…
learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resultMap复用 集合(一对多) 3 关联查询 做查询之前,先修改几个配置.mapper.xml是在mybatis-config.xml中指定,那么我们每增加一个mapper都要增加一个配置,很麻烦.为了简化配置.需要将mapper接口和mapper.xml放到同一个文件下,并且接口和xml文件命名一致…
一.最基本的配置文件 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <environments…
查询语句是使用 MyBatis 时最常用的元素之一 select元素配置细节如下 属性 描述 取值 默认 id 在这个模式下唯一的标识符,可被其它语句引用     parameterType 传给此语句的参数的完整类名或别名     resultType 语句返回值类型的整类名或别名.注意,如果是集合,那么这里填写的是集合的项的整类名或别名,而不是集合本身的类名.(resultType 与resultMap 不能并用)     resultMap 引用的外部resultMap 名.结果集映射是M…
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2013年11月迁移到Github,MyBatis的Github地址:https://github.com/mybatis/mybatis-3. iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Dat…
XML 映射配置文件 MyBatis 的配置文件包含了设置(settings)和属性(properties)信息. properties 这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递.例如: <properties resource="org/mybatis/example/config.properties"> <property name="username"…
二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX, ST.STU…
1.简单说明. MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记录. 每一个MyBatis项目中都以一个对象sqlSessionFactory为核心,它可以通过sqlSessionFactoryBuilder来获得,它产生了一个个的sqlSession. 2.关于项目中的使用做详尽说明. 什么是Mapper对象?根据Mybatis的官方手册,应用程序除了要初始…
在阅读本文章时,先说几个mybatis中容易混淆的地方: 1. mybatis中的列不是数据库里的列而是查询里的列,可以是别名(如 select user_name as userName,这时column='userName' property="userName") 2.Mysql中使用自增主键时,useGeneratedKeys 用来获得自增主键填入类型对应的id属性,之后通过get方法得到 3.Map结尾是映射,Type是类型  resultType 和restltMap re…