MyBatis的Mapper映射文件

本文详细介绍了MyBatis映射文件的结构,包括select、insert、update和delete节点的使用,重点讲解了resultMap、sql及动态SQL的高级用法,如if、where、trim、foreach等,同时阐述了#{}和${}的区别,为MyBatis的高效使用提供了全面指导。
摘要由CSDN通过智能技术生成

MyBatis映射文件

一、Mybatis文件的整体结构:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Mapper接口对应的全路径名称">
	<!--可包含多个select、insert、update、resultMap、sql子节点-->
</mapper>	

二、Mapper节点下的几个主要的子节点

在这里插入图片描述

1、select节点说明

  • select:映射查询语句
    作用:主要使用映射sql语句中的插叙语句

    • id:对应的是XxxMapper接口的方法名在命名空间中唯一的标识符,可以被用来引用这条语句。
    • parameterType:对应的是参数的类型
    • resultType:返回的类型,如果返回的是一个集合,需要写集合中存放的类型(泛型)
    • statementType :类型的取值有 STATEMENT (一般的stament语句)、 PERPARED默认,预编译的perparedStatement语句)、CALLABLE(过程)
    • resultMap:复杂的结果集映射(下面会介绍到)。

2、insert、update和detele节点的说明

insert(映射插入语句 )、update(映射更新语句)、 delete(映射删除语句)

  • parameterType:对应的是参数的类型
  • useGeneratedKeys="true"keyProperty="id": 在MySQL中使用主键自增策略获取主键的值,可通过这两个属性并映射到keyProperty指定的主键中去,只有在insertupdate语句中有效

备注:在Mapper文件中,一个sql语句的结束是不需要写 “ ; ”符号的

三、更丰富的用法resultMap、sql 以及动态 sql

1、resultMap复杂的返回值

属性:id 主要用于指定该resultMap标识

1)成员变量全是基本数据类型(对应的包装类)和Sting类的POJO
  • id子节点:主要用于映射主键
 <id column="数据库中对应的字段" property="实体类POJO中对应成员变量" >
  • result 子节点: 用于映射普通属性
  <result column="数据库字段名" property="成员变量名"/>

示例:

<resultMap id="user">
	<!--这里映射的是主键-->
	<id column="id" prorperty="id"/>
	<result column="user_name" property="userName"/>
</resultMap>
2)成员变量包含其他引用的实体类,使用级联进行指定映射

JavaBean实体类的示例:

package com.example.bean;
class User{
   
	private Integer id;
	private String userName;
	private Role role;
	/*
	省略setter和getter
	*/
}

class Role{
   
	private Integer id;
	private String role_name;
	/*
	省略setter和getter
	*/
}

格式

	<result column="数据库字段名" property="成员变量名.成员变量名">

示例:

<resultMap id="user" type="com.example.bean.User">
	<!--这里映射的是主键-->
	<id column="id" prorperty="id"/>
	<result column="user_name" property=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值