`
实学实战
  • 浏览: 15619 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

Mybatis的mapper.xml文件详解

 
阅读更多

Mybatis的mapper.xml文件详解


1、#{}和${}的区别:

#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,#{}中可以写成value或其它名称。
#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

${}表示一个拼接符号,会引用sql注入,所以不建议使用${}。
${}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,${}中只能写成value。
${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。

2、selectOne和selectList的区别:
selectOne表示查询出一条记录进行映射。
如果使用selectOne可以实现使用selectList也可以实现(list中只有一个对象)。

selectList表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录,不能使用selectOne。
如果使用selectOne报错:
org.apache.ibatis.exceptions.TooManyResultsException:
Expected one result (or null) to be returned by selectOne(), but found: 4

3、在映射文件中通过parameterType指定输入参数的类型。

4、在映射文件中通过resultType指定输出结果的类型。


5、resultType:

使用resultType实现较为简单,如果pojo中没有包括查询出来的列名,

需要增加列名对应的属性,即可完成映射。

如果没有查询结果的特殊要求建议使用resultType。


6、resultMap:

需要单独定义resultMap,实现有点麻烦,如果对查询结果有特殊的要求,

使用resultMap可以完成将关联查询映射pojo的属性中。

resultMap可以实现延迟加载,resultType无法实现延迟加载。


6.1、resultMap:

使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。

association:

作用:将关联查询信息映射到一个pojo对象中。

场合:为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中,

比如:查询订单及关联用户信息。

使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap


collection:

作用:将关联查询信息映射到一个list集合中。

场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,

比如:查询用户权限范围模块及模块下的菜单,

可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中,

这样的作的目的也是方便对查询结果集进行遍历查询。如果使用resultType无法将查询结果映射到list集合中。



Mybatis入门例子(http://blog.csdn.net/javawebrookie/article/details/52654526)

mybatis官网(http://www.mybatis.org/mybatis-3/zh/index.html)




分享到:
评论

相关推荐

    mybatis【mapper.xml类提示eclipse插件】【正式版下载】

    mybatis-MyBatis-Plugin 是一个专为 MyBatis 设计的 Eclipse 插件,它可以提供对 MyBatis 的 mapper.xml 文件中的自动补全和提示功能。该插件能够识别 mapper.xml 文件中的 class 类型以及其他元素,并提供相应的...

    mybatis如何通过接口查找对应的mapper.xml及方法执行详解

    首先,当我们使用`SqlSession.getMapper()`方法来获取一个Mapper接口的实例时,例如`BookMapper bookMapper = SqlSession().getMapper(BookMapper.class)`,MyBatis是如何找到对应的mapper.xml文件并绑定接口方法的...

    详解mybatis-plus的 mapper.xml 路径配置的坑

    在使用Mybatis-Plus时,有时我们可能会遇到mapper.xml文件未被正确读取的问题,这通常是由于配置不正确导致的。本文将详细讲解mybatis-plus的mapper.xml路径配置的常见问题,并提供解决策略。 首先,我们需要理解...

    mybatis开发步骤

    configuration.xml文件是MyBatis的配置文件,用于配置数据源相关的参数和映射文件Mapper.xml。以下是一个简单的configuration.xml文件示例: ```xml <property name="driver" value="com.mysql.jdbc....

    org.mybatis.generator.eclipse.site-1.3.78.zip

    《MyBatis Generator Eclipse 插件详解》 MyBatis Generator (MBG) 是一个强大的工具,用于自动化 MyBatis 框架的代码生成过程。在开发过程中,MBG 能够帮助开发者自动生成 SQL 映射文件、Java POJO 类以及 MyBatis...

    MybatisGenerator.zip

    Mybatis Generator(MBG)是一款强大的代码生成工具,它能够自动生成Java实体类、Mapper接口以及对应的XML映射文件,极大地提高了开发效率。在给定的"MybatisGenerator.zip"压缩包中,包含了一个可以直接运行的main...

    springBoot_Mybatis.zip

    Mybatis的Mapper接口和Mapper XML文件是其核心部分,它们定义了SQL的执行逻辑。 SpringBoot整合Mybatis主要涉及以下几个步骤: 1. 添加依赖:在SpringBoot的pom.xml文件中添加Mybatis和其Spring Boot starter依赖...

    idea free-idea-mybatis-2019.12.18插件

    3. **Mapper文件与接口关联跳转**:在Mapper接口或XML文件中,插件支持双向跳转,即点击接口方法可以直接跳转到相应的XML映射文件,反之亦然。这种关联跳转功能极大地增强了代码的可阅读性和可维护性。 4. **SQL...

    mybatisdemo.zip

    《SpringBoot整合Mybatis实践详解》 在现代Java开发中,SpringBoot因其便捷的配置、自动化的特性,已经成为主流的微服务框架。而Mybatis作为轻量级的持久层框架,以其灵活的SQL操作和良好的扩展性,深受开发者喜爱...

    generatorConfig.xml配置文件含说明

    `generatorConfig.xml` 文件是MyBatis Generator(MBG)工具的核心配置文件,它用于定义如何自动生成Java源代码、XML映射文件以及SQL语句。MBG是一个强大的工具,可以极大地提高开发效率,减少手动编写重复代码的...

    从零搭建Spring Boot脚手架,手写Mybatis通用Mapper.docx

    ### 从零搭建Spring Boot脚手架:手写Mybatis通用Mapper详解 #### 前言 本文将探讨如何在Spring Boot项目中集成一个自定义的Mybatis通用Mapper,以达到简化开发流程的目的。在之前的篇章中,我们已经集成了国内广...

    SpringMVC+Mybatis+Web配置文件详解

    总结来说,SpringMVC+Mybatis+Web的配置涉及多个层次的文件,包括SpringMVC的`spring-mvc.xml`、Mybatis的`mybatis-config.xml`和`mybatis-spring.xml`、Web应用的`web.xml`以及Spring的全局配置`applicationContext...

    mybatis-generator.zip(生成代码模板)

    MyBatis Generator(MBG)是一个强大的工具,用于自动生成Java源代码和XML配置文件,大大简化了开发人员的工作,特别是在处理与数据库交互时。它根据数据库中的表信息,能够生成DAO层、Model层以及Mapper XML文件,...

    代码生成工具generator.xml文件

    generator是一个自动生成代码的工具,其主要功能是基于数据库表结构生成Java实体类、Mapper XML文件以及DAO层的Java代码。通过预先定义好的配置,generator可以自动化处理这些常见但繁琐的任务,从而让开发者更多地...

    mybatis笔记.zip

    【标题】: "mybatis笔记.zip" 是一个包含MyBatis框架详解的压缩包,源自知名讲师的"狂神说"系列教程。 【描述】: "Mybatis狂神说完整笔记,typora带图片" 指出这是一份详尽的MyBatis学习笔记,由流行的markdown编辑...

    mybatis教程.doc

    ### MyBatis 教程详解 #### 一、MyBatis 概述 **MyBatis** 是一款优秀的持久层框架,它简化了基于 Java 的应用程序与数据库交互的过程。相较于传统的 JDBC 方式,MyBatis 提供了一系列强大的功能,使得开发者能够...

    Spring mvc + mybatis 3.x 超简完整可运行Demo

    **Spring MVC + MyBatis 3.x 超简完整可运行Demo详解** Spring MVC 和 MyBatis 是Java开发中的两大重要框架,它们在企业级Web应用开发中扮演着核心角色。Spring MVC作为Spring框架的一部分,负责处理HTTP请求并将其...

    10-1资料-spring+mybatis分页.rar

    2. **Mapper接口**:定义业务接口,使用MyBatis的注解@Mapper或XML配置文件映射SQL。 3. **事务管理**:Spring的PlatformTransactionManager可管理MyBatis的事务,实现事务的统一控制。 4. **Spring的AOP**:利用AOP...

Global site tag (gtag.js) - Google Analytics