mybatis中xml文件容易搞混的属性

2023-12-16 02:44
文章标签 xml 属性 mybatis 容易 搞混

本文主要是介绍mybatis中xml文件容易搞混的属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 第一章、
    • 1.1)MyBatis中resultMap标签
    • 1.2)MyBatis的resultType
    • 1.3)MyBatis的parameterType
    • 1.4)type属性
    • 1.5)javaType属性

友情提醒:
先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。

第一章、

1.1)MyBatis中resultMap标签

resultType和resultMap是不能同时存在的
介绍:在MyBatis当中,查询结果集被封装为Java对象,可以通过resultType,也可以通过resultMap,在resultMap当中描述了数据库表的列与Java对象的属性之间的对应关系。在映射关系中,还可以通过resultMap的typeHandler设置实现查询结果值的类型转换。ResultMap不仅可以解决简单的列与属性的映射问题,还可以处理复杂的查询结果,比如联合查询、子查询等。对于这些复杂的查询结果,可以在ResultMap中使用子元素来处理,比如<collection>元素用于处理一对多、一对一的关系,<association>元素用于处理与关联对象的关系。
作用:用于将数据库查询的结果映射到Java对象。ResultMap的主要目的是解决数据库复杂查询和Java对象之间的映射问题。

<resultMap id="userResult" type="com.example.User">  <result property="id" column="id"/>  <result property="name" column="name"/>  <result property="email" column="email"/>  
</resultMap>

1.2)MyBatis的resultType

resultType和resultMap是不能同时存在的
resultType用来指定查询结果集封装的数据类型,当一个select语句查询之后得到结果集,可以使用 resultType 属性来指定查询结果应映射到的 Java 类型。结果集的列名需要和java实体类的属性名一致,不一致的可以使用as关键字给列起别名。
例如:返回值为int,resultType为int ,java.lang.Integer也可以

<mapper namespace="com.xx.xx.dao.UserMapper"><!-- 返回值为int,resultType为int ,java.lang.Integer也可以--><select id="countUser" resultType="int">select count(*) from user</select>
</mapper>

例如,假设你有一个名为 User 的 Java 类,其中包含 id、name 和 age 等属性。你可以在 MyBatis 的 XML 映射文件中编写以下查询语句:

<select id="getUser" resultType="com.example.User">  SELECT id, name, age FROM users WHERE id = #{id}  
</select>

在上面的示例中,resultType 属性被设置为 com.example.User,这意味着查询结果的一行记录数据将被映射到resultType指定类型的对象 User 类。查询结果中的每一行数据将自动填充到 User 对象中,其中 id 列映射到 User 类的 id 属性,name 列映射到 User 类的 name 属性,以此类推。

1.3)MyBatis的parameterType

指定输入参数类型,mybatis通过parameterType属性用来指定参数类型,parameterType属性是专门用来给sql语句占位符#{}传值的,底层原理使用了反射机制,#{}的大括号当中需要提供实体类的属性名,底层使用属性名拼接get方法来获取属性值,将属性值传递给sql语句。parameterType传输单个简单类型值,${}括号中只能是value。从输入对象中获取参数值拼接在sql中。
这个属性在<insert>、<update>、<delete>和<select>等映射标签中都有使用。通过指定parameterType属性,MyBatis可以获取到输入参数的值,并将其转换为对应的类型后传递给SQL语句执行。
例如,在如下示例中,我们将一个User对象插入到数据库中:

<insert id="insertUser" parameterType="com.example.User">  INSERT INTO user(username, password) VALUES(#{username}, #{password})  
</insert>

在这个例子中,parameterType属性指定了输入参数的类型为com.example.User,这意味着我们在执行插入语句时,需要传递一个User对象作为输入参数。MyBatis会根据User类中的属性,将数据库中的值映射到User对象中对应的属性。

除了使用类类型作为parameterType属性的值之外,还可以使用别名来指定输入参数的类型。例如,可以使用#{String}来指定输入参数为字符串类型。在实际开发中,需要根据具体的业务需求来选择合适的类型,并且正确地配置parameterType属性。

1.4)type属性

MyBatis中的type属性一般用在两种不同的地方:
当我们在mapper.xml中定义SQL语句时,type属性通常用来指定SQL语句的类型,比如select、insert、update、delete等。
例如:

<insert id="insertUser" parameterType="com.example.User" type="INSERT">  INSERT INTO user(username, password) VALUES(#{username}, #{password})  
</insert>

1.5)javaType属性

这篇关于mybatis中xml文件容易搞混的属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/498816

相关文章

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推