Mapper接口和XML配置|学习笔记

简介: 快速学习Mapper接口和XML配置

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术Mapper接口和XML配置学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15922


Mapper接口和XML配置


内容简介:

一、SELRECT Goods标记

二、INSERT标记

 

一、SELRECT Goods标记

以 Mapper的插面文件为例来验证MXl的标记是如何使用的

文件在工程的 ResultMap的目录下,并在此建立了目录集便于进行打包

1.首先查看怎样用标记来实现对象模型和关系模型的映射

2.查看 SELRECT Goods标记

3.SELRECT 标记是从数据库中查询数据返回给对象模型

4.SELRECT 标记定义了 select id=“find”的 id 加上 napper namespace 对应到Mapper 接口中的 findGoods 接口

5.paraneterType 表示传过来的参数是什么样的。因为传参数使用对象,所以不需特别对其进行定义。若想传输多个参数且不使用对象传输,则需要 paraneterType进行定义

6.result Type refid 直接返回的是一个对象,所以直接将对象作为它的一个result Type

7.在SELRECT 标记中是一个 select 语句,可以看到运用了 include标签,其中有名为"Goods_Column_List"的 sql片段

<sql id="Goods_Column_List">

id,

goods_sn,

name,

category_id,

brand_id,

brief,

spec_list,

pic_url,

unit,

state,

add_time,

update_tine,

nodi_user

以上是用sql标记定义的一段语句,为避免重复使用所以使用 sql,使用时用 include引进进来。进行修改时若修改sql里的内容时,所有的内容都会进行修改。

8. 在 sql中用了if的动态语句标记

SELECT

<include refid="Goods_Colunn_List"/>

FROM oomall_goods

WHERE

state != 2

<if test="id!=null">and id = #{id} </if>

<iftest="goodsSn!=null andgoodsSn!='"">and gaods_sn= #{goodsSn} </if>

<iftest="name!=null andnane!=''">and nane = #{nam}</if>

<if test="categoryId!=null">andcategory_id

=#{categoryId}</1f>

<if test="state!=null">andbrand_Id=#{brandId}</1f>

<iftest="state!=null">and state = #{state} </if>

</select>

需要查看传件的参数中间不为空的属性作为参与条件,所以要用多个条件进行查询,需要用 if 去判断字段的属性是否为空,若不是空或空格则作为查询条件组合到

语句中去。

#{ }这个标记表示里面的值是来自于参数,因为 paraneterType=“GoodsPo”所以id 就成为 GoodsPo的一个属性,将语句进行一个预编译,将#里的东西作为一个参

数在执行的时候与预编译的sql语句进行了绑定,相对比较安全

select 的返回类型是 GoodsPo,它会将返回的字段名称与 GoodsPo进行对应

 

二、INSERT标记

<insertid="createGoods" parameterType="GoodsPo" keyProperty="id"useGeneratedKeys="true">

INSERT INTO oonalt_goods(<include refid="Goods_Insert_List"/>)

VALUES(#(goodsSn),#(name》,#(categoryId),#(brandId),#(brief),#(specList),#(picUrl),#(unit),8,CURRENT_TIMESTAHP)

</insert>

1.传入商品信息 createGoods,传过来的信息为 GoodsPo

2.定义一个 keyProperty=“id”说明这个字段是要用字针的方式来自动产生

3.set 语句是根据 UPDATE传过来的语句不为空来设置的同样结合 if 语句判断动态语句是否为空,不为空才将其组入 set语句中。

<resultMap type="GoodsPo" id="GoodsProductResultMap"autoMapping="true">

<id property =id"/>

1.GoodsPo 是一个有关联的对象,一个商品里面含有多个规格,所以 GoodsPo有个属性 ProductList作为商品关联的规格对象

2.resultMap 的作用是当查询表时会形成一个有商品关联的规格对象并返回

3.autoMapping 可以进行简化不用一个个的写属性和字段自建的关系,有些可以进行自动映射。

<collection property="productList" ofType="cn.edu.xmu.restfuldeno.model.ProductPo"autoMapping="true">

<id property="id" colunn:"product_1d"/>

<result property="nane" column:"product_name"/s

cDesuTnnonontun"ctatom

1. productList 的属性是 List类型中的每一个元素是 ProductPo对于后面定义的ofTypecollection中的每一个元素的类型是 ProductPo。注意整个的包名要写全。

2. 同样使用了 autoMapping,由于存在某些字段的名字和属性名字是不能做autoMapping的。

<select id="findGoods"paraneterType="GoodsPo"resultTypet"GoodsPo"...>

eselect id:"findGoodsWithProduct"parareterType="GoodsPo”resultMap="GoodsProductResultMap">

1.resultMap 不是简单的返回一个 GoodsPo对象,而是返回了一个带关联的GoodsPo 对象,里面有 productListGoodsPo对象。

也可做成延迟加载的模式

2、返回的类型用 ResultMap装返回值,返回的对象仍然是 GoodsPo对象。

FROM oomall_goods q LEFT JOIN oonall_product p

DN 9.1d = p.goods_1d

WHERE

1.LEFT JOIN 的作用是左链接用 Goods的表去链接 Product的表

条件是 Goods的id一致

2.连表查询出来的语句会出现多条记录因为一个 Goods有多个 Product,但定义了返回的值是 ResultMap后,多条记录的返回集映射成一对多的对象关系模型。

相关文章
|
4月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
1月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
76 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
1月前
|
XML Java 数据库连接
IDEA如何使mapper直接跳转到xml,超实用
【10月更文挑战第23天】本文介绍了如何在 MyBatis 框架中配置 Mapper 接口和 XML 文件的关联。方法一:使用 MyBatis-Generator 插件自动生成代码;方法二:手动配置,包括命名规范、文件路径设置和 IDEA 设置;此外,还可以通过快捷键、导航栏和 MyBatis-Plugin 插件来增强跳转功能。
1169 1
|
2月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
218 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
2月前
|
XML Java 应用服务中间件
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
通过一个HelloWorld实例,介绍了SpringMVC的基本概念、执行流程,并详细讲解了如何创建和配置第一个SpringMVC项目(基于XML)。
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
|
1月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
152 5
|
1月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
89 4
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
77 4
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
80 0
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
45 1