MyBatis教程----------Mapper.xml详解

本文详细介绍了MyBatis中的Mapper.xml配置,包括parameterType和resultType的使用,以及如何处理级联查询。从基本数据类型到POJO,展示了不同参数配置,并在面对一对多、多对多关联查询时,利用resultMap和association/collection标签实现映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:


我们知道,每一款框架产品在实际开发中,都是通过XML文件来培训框架的相关流程的,MyBatis也不例外,主要有两个配置文件:config.xml和Mapper.xml,当然,这两种配置文件可以自定义文件名。


config.xml是全局配置文件,主要配置MyBatis的数据源(DataSource),事务管理(TransactionManager),以及打印SQL语句,开启二级缓存,设置实体类别名等功能。


Mapper.xml的作用是什么?我们之前介绍过,MyBatis是"半自动"的ORM框架,即SQL语句需要开发者自定义,MyBatis的关注点在POJO与SQL之间的映射关系。那么SQL语句在哪里配置自定义呢?就在Mapper.xml中配置。


首先来介绍Mapper.xml常用属性:


parameterType:参数数据类型


(1)基本数据类型,通过id查询User。


UserDAO:


//通过id查询User
public User getById(int id);


UserDAO.xml:


<select id="getById" parameterType="int" resultType="com.southwind.entity.User">
   select * from user where id=#{id}
</select>


(2)String类型,通过name查询User。


UserDAO:


//通过name查询User
public User getByName(String name);


UserDAO.xml:


<select id="get2" parameterType="java.lang.String" resultType="com.southwind.entity.User">
   select * from user where name = #{name}
</select>


(3)包装类,通过id查询User。


UserDAO:


//通过id查询User
public User getById(Integer id);


UserDAO.xml:


<select id="getById" parameterType="java.lang.Integer" resultType="com.southwind.entity.User">
   select * from user where id=#{id}
</select>


(4)多个参数,通过name和age查询User。两个参数分别是String类型和int类型,类型不一致,所以此时parameterType可以省略,通过参数下标取出参数值。


UserDAO:


//通过name和age查询User
public User getByNameAge(int id,String name);


UserDAO.xml:


<select id="getByNameAge" resultType="com.southwind.entity.User">
   select * from user where name = #{0} and age = #{1}
</select>


(5)POJO,很显然,当有多个参数时,一个一个写太麻烦了,这时候我们可以将参数列表进行封装,将封装对象作为parameterType的值。


UserDAO:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值