MyBatis配置文件(九)--mappers映射器
映射器是MyBatis中最复杂、最核心的组件,本文先介绍映射器的引入方法,其他的在我日后会再做分析和总结。
之前的文章中有提到过,映射器是由一个接口和一个XML配置文件组成,XML文件中需要定义一个命名空间namespace,它的值就是接口对应的全路径。
如我定义一个根据ID查询产品的映射器,需要以下两步:
第一步:创建一个接口,定义查询方法
public interface ProductMapper {
//查询接口
public Product selectById(String id);
}
第二步:创建对应的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.daily.dao.ProductMapper">
<resultMap id="BaseResultMap" type="com.daily.pojo.Product">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="product_name" jdbcType="VARCHAR" property="productName" />
<result column="product_price" jdbcType="VARCHAR" property="productPrice" />
<result column="product_type" jdbcType="VARCHAR" property="productType" />
</resultMap> <!-- MyBatis自动映射功能:
1、首先通过接口中的方法名与sql查询语句进行关联
2、当查询到的字段与pojo中的字段完全对应的时候,就会将查询结果自动映射成一个pojo对象
3、如果数据库字段和类字段不一致,则需要进行转换,所以一般设计数据库的时候,字段采用驼峰式
-->
<select id="selectById" parameterType="String" resultType="product">
SELECT * FROM product p WHERE p.id = #{id,jdbcType=VARCHAR}
</select>
</mapper>
在上面的配置中,mapper中有一个namespace="com.daily.dao.ProductMapper"配置,这就是命名空间,其值是接口的全路径,当然这个全路径也可以在别名中定义,然后直接在这里引用。
定义好了一个映射器之后就可以在mybatis-config.xml中引入了,引入方法有以下几种:
1、用文件路径引入
<mappers>
<mapper resource="com/daily/mapper/UserMapper.xml" />
<mapper resource="com/daily/mapper/ProductMapper.xml" />
<mapper resource="com/daily/mapper/BlogMapper.xml" />
</mappers>
2、用包名引入
这种引入方式相当于批量引入一个包下的所有映射器
<mappers>
<package name="com.daily.mapper"/>
</mappers>
3、用类注册引入
<mappers>
<mapper class="com.daily.mapper.UserMapper" />
<mapper class="com.daily.mapper.ProductMapper" />
<mapper class="com.daily.mapper.BlogMapper" />
</mappers>
4、使用URL方式引入
<mappers>
<mapper url="xml文件访问URL" />
</mappers>
根据实际情况选择合适的引入方式即可。
以上就是映射器引入方式的介绍。
MyBatis配置文件(九)--mappers映射器的更多相关文章
- IDEA Mybatis 找不到映射器xml文件
用IDEA新建了一个测试MyBatis工程,工程目录如下 其中config是MyBatis的配置文件,内容如下 <?xml version="1.0" encoding=&q ...
- mybatis精讲(五)--映射器组件
目录 前言 标签 select insert|update|delete 参数 resultMap cache 自定义缓存 # 加入战队 微信公众号 前言 映射器之前我们已经提到了,是mybatis特 ...
- Could not find resource——mybatis 找不到映射器xml文件
今天用IDEA写Mybatis的时候,测试报了如图所示的错,恶心死我了,后来解决了,总结一下,防止下回跳坑,当然,也是做一个分享,如果有朋友遇到这个错,希望有所帮助 Error parsing SQL ...
- mybatis 找不到映射器xml文件 (idea)
原因是: idea不会编译src的java目录的xml文件 所以解决思路就是:将IDEA maven项目中src源代码下的xml等资源文件编译进classes文件夹 具体操作方法就是:配置maven的 ...
- 深入浅出mybatis之映射器
目录 概述 XML映射器 定义xml映射器 配置xml映射器 使用xml映射器 接口映射器 定义接口映射器 配置接口映射器 使用接口映射器 总结与对比 概述 映射器是MyBatis中最核心的组件之一, ...
- MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了<MyBatis学习总结(一)——ORM概要与MyBatis快速起步>,这一章主要是介绍MyBatis核心配置文件.使用接口+XML实现完整数据访问.输入参数映射与输出 ...
- mybatis学习(一)-------XML 映射配置文件详解
XML 映射配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配 ...
- Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器
关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务 ...
- Mybatis映射器接口代理对象的方式 运行过程
查询一张表的所有数据. 环境: 使用工具IntelliJ IDEA 2018.2版本. 创建Maven工程不用骨架 1.pom.xml <?xml version="1.0" ...
随机推荐
- clover无缘无故隐藏书签栏原因
可能是不小心按住了Ctrl+shift+B
- Java学习之Java历史版本
Java有三个版本,标准版Java SE,企业版Java EE,移动版Java ME.按理来说,每一种版本都会有自己的版本号,但是约定俗成:JDK版本号=Java SE版本号=Java版本号,这是因为 ...
- vue组件间通信用例
父组件传值给子组件 -- 以封装公用slide组件为例 父组件 <template> <section class="banner"> <slide ...
- 普及组R4
T3 链接:C 输入一个长度为n的数组a[i],下标从0开始(0到n-1) 保证n是2的整数次幂, 对于每个i (0 <= i < n) 求所有满足((i & j) == j)的a ...
- java 测试时 程序的 运行时间
检测一个JAVA程序的运行时间方法:long startTime = System.currentTimeMillis();//获取当前时间//doSomeThing(); //要运行的java程 ...
- 2019-5-15-影子系统让-C++-程序无法运行
title author date CreateTime categories 影子系统让 C++ 程序无法运行 lindexi 2019-05-15 15:24:35 +0800 2019-05-1 ...
- spring:AOP面向切面编程02
参考: https://blog.csdn.net/jeffleo/article/details/54136904 一.AOP的核心概念AOP(Aspect Oriented Programming ...
- Android开发 LevelListDrawable详解
前言 此篇博客正在施工中... 作者其实就是想挖个坑备忘一下... 十分抱歉, 可以参考https://www.jianshu.com/p/f9ec65241b6b
- 查看python安装位置和已安装库的相关操作
打开cmd.exe, *查看python安装位置 where python *查看已安装库 pip list 或者pip freeze *查看可以更新的第三方库 pip list --outdated ...
- angular组件之间的通信
一.组件创建 直接使用 ng g component 的命令创建组件,会自动生成组件所需的文件,方便快捷. // 父组件 ng g component parent // 子组件 ng g compo ...