Mybatis-4-配置文件的一些常用标签

本文详细解析了MyBatis配置文件中的关键标签,包括properties标签用于导入外部属性文件,typeAliases中的typeAlias和package标签用于实体类的别名配置,以及mappers中的package标签用于扫描映射接口。

一、properties标签

作用:可以用来导入外部properties文件。

properties文件:在这里插入图片描述
使用properties标签导入文件:
在这里插入图片描述
配置中使用文件内容的写法:
在这里插入图片描述

二、typeAliases中的【typeAlias】标签和【package】标签

1. typeAlias标签

作用:给某个实体类配置别名,配置完的别名在使用的时候不区分大小写。

mybatis配置:
在这里插入图片描述
映射文件中使用别名来配置结果类型:
在这里插入图片描述

2. package标签

作用:给某个包下的所有实体类配置别名,别名配置为了类名,配置完的别名在使用的时候不区分大小写。

包:
在这里插入图片描述
mybatis配置:在这里插入图片描述
映射文件中使用别名来配置结果类型:
在这里插入图片描述

三、mappers中的【package】标签

作用:扫描某个包下的所有映射接口,与映射文件一一对应。
注意:接口名与映射文件名相同,接口所在路径结构与映射文件所在路径结构相同

包:
在这里插入图片描述
映射文件:
在这里插入图片描述
mybatis配置:
在这里插入图片描述


更新时间:2020-1-14
<think>好的,用户想找关于MyBatis映射配置文件的使用示例和用法。我需要先回忆一下MyBatis的基本结构,特别是mapper XML文件的作用和常见元素。 首先,MyBatis的mapper XML文件通常用来定义SQL语句和结果映射。用户提到的引用[1]中提到,dao层的方法名必须与XML中的id一致,参数也要匹配。这一点很重要,需要强调。 接下来,引用[3]提到使用generator生成model、mapping和dao,这说明自动生成工具可以简化配置,但用户现在可能更关注手动编写的示例,所以应该给出一个基础的示例,展示select、insert、update、delete等基本操作。 然后,用户可能需要了解结果映射,比如使用resultMap处理复杂对象关联,比如一对一、一对多。例如,用户可能有User和Order的关系,这时候可以用association和collection来处理。 另外,动态SQL也是MyBatis的一个重点,比如if、choose、foreach等标签,这些在引用中没有提到,但实际使用中很常见,应该包含在示例中。 还要注意XML文件中的命名空间(namespace)必须对应dao接口的全限定名,这样MyBatis才能正确映射方法。同时,参数传递的方式,比如使用@Param注解或者直接传对象,也需要说明。 用户的问题可能涉及如何配置基本的CRUD操作,如何处理结果集,以及动态SQL的使用。此外,可能还需要提到一些常见问题的解决方法,比如字段名和属性名不一致时的处理,使用resultMap而不是resultType。 最后,根据引用[2]和[3],自动生成工具的使用也是一个相关点,但用户当前的问题更侧重于手动配置,所以可能只需要简要提及生成工具的存在,而重点放在手动配置示例上。 需要确保示例中的XML语法正确,比如标签的闭合,属性使用等。同时,引用相关的引用文献,比如方法名与id一致的问题引用[1],生成工具的使用引用[3]。 总结回答结构:先介绍mapper文件的作用,然后给出基本示例,包括各种SQL操作和结果映射,接着是动态SQL的例子,最后提到自动生成工具和相关注意事项,引用对应的引用源。</think>### MyBatis映射配置文件详解 #### 一、映射文件基础结构 MyBatis的映射文件(通常命名为`XxxMapper.xml`)包含以下核心元素: ```xml <?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="com.example.dao.UserDao"> <!-- SQL定义 --> </mapper> ``` 关键说明: - `namespace`必须对应DAO接口的全限定名[^1] - SQL语句的`id`必须与DAO接口方法名完全一致[^1] #### 二、常用SQL配置示例 1. **基础查询** ```xml <select id="selectById" resultType="User"> SELECT * FROM users WHERE id = #{id} </select> ``` 2. **结果映射** ```xml <resultMap id="userResultMap" type="User"> <id property="id" column="user_id"/> <result property="name" column="user_name"/> <collection property="orders" ofType="Order" select="selectOrdersByUserId" column="id"/> </resultMap> <select id="selectUserWithOrders" resultMap="userResultMap"> SELECT * FROM users WHERE id = #{id} </select> ``` 3. **动态SQL** ```xml <update id="updateUser"> UPDATE users <set> <if test="name != null">name=#{name},</if> <if test="email != null">email=#{email}</if> </set> WHERE id=#{id} </update> ``` #### 三、高级配置技巧 1. **关联查询** ```xml <select id="selectUserWithRole" resultMap="userRoleMap"> SELECT u.*, r.role_name FROM users u LEFT JOIN roles r ON u.role_id = r.id </select> <resultMap id="userRoleMap" type="User"> <association property="role" javaType="Role"> <result property="name" column="role_name"/> </association> </resultMap> ``` 2. **批量插入** ```xml <insert id="batchInsert" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, email) VALUES <foreach collection="list" item="user" separator=","> (#{user.name}, #{user.email}) </foreach> </insert> ``` #### 四、生成工具使用 通过MyBatis Generator可自动生成映射文件[^3]: ```xml <!-- generator.xml配置示例 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值