MyBatis全局配置文件的各项标签3
mapper
将sql映射注册到全局配置中,这个我们在上一章已经使用过了,
- resource
这个属性是用来引用类路径下的sql映射文件
- url
这个属性是用来引用网络路径或磁盘路径下的sql映射文件
- class
直接引用接口(注册接口),这里需要把接口和映射文件放在同一文件夹下,而且要保证,两者同名。
如果你是使用IDEA,这里需要大家注意一件事,由于新版的IntelliJ IDEA不再编译source folder下的xml文件,而我们平时使用mybatis时,习惯于将*Mapper.xml文件放在与dao层、service层平级的src目录下。这就导致ItelliJ IDEA不会变异这些xml文件夹,从而导致Invalid bound statement (not found)的发生。
我们需要在pom.xml文件的<build>标签加入以下代码:
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </resource>
- </resources>
当然还有一种方法∑(っ°Д°;)っ:
mybatis是支持没有sql映射文件,所有的sql都是利用注解写在接口上:
- package com.figsprite.dao;
- import com.figsprite.bean.Employee;
- import org.apache.ibatis.annotations.Select;
- public interface EmployeeMapperAnnotation {
- @Select("select id,last_name lastName,gender,email from tb_employee where id = #{id}")
- Employee getEmpById(Integer id);
- }
- @Test
- public void test2() throws IOException {
- SqlSession openSession = getSqlSessionFactory().openSession();
- try {
- EmployeeMapperAnnotation employee = openSession.getMapper(EmployeeMapperAnnotation.class);
- employee.getEmpById(1);
- System.out.println(employee);
- }finally {
- openSession.close();
- }
- }
这种方式比较简单,但是违背了Mybatis的初衷——抽离sql语句,建议比较重要的sql写在xml文件里,而比较简单的,我们就写在java代码里。
如果我们的接口中有很多种方法对应sql语句,那么,我们一句一句sql写起来是不是很麻烦?因此Mybatis提供了批量注册的标签package
与别名中的package使用相同
<package name="包名"/>
可想而知,注解版的mapper是没有问题的,但是通过xml文件配置的,就会有问题了,因此必须要放在同包下,并且同名。
- <mappers>
- <package name="com.figsprite.dao"/>
- </mappers>
另外强调一点,全局配置文件中的这些标签是有顺序要求的,不按顺序些会报错
MyBatis全局配置文件的各项标签3的更多相关文章
- MyBaits全局配置文件的各项标签1
■dtd约束 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...
- MyBaits全局配置文件的各项标签2
▲typeHandlers 类型处理器,它架起数据库和JavaBean一一映射的桥梁,这里需要注意一下,java在JDK1.8之前,日期处理函数并不丰富,但在JDK1.8之后引入JSR-310标准,这 ...
- Mybatis全局配置文件详解(三)
每个基于Mybatis应用都是以一个SqlSessionFactory实例为中心.SqlSessionFactory实例可以由SqlSessionFactoryBuild获得,而SqlSessionF ...
- Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml
比如针对我这个项目的mybatis全局配置文件SqlMapConfig.xml做一些说明: <?xml version="1.0" encoding="UTF-8& ...
- MyBatis 全局配置文件详解(七)
MyBatis 配置文件作用 MyBatis配置文件包含影响 MyBatis 框架正常使用的功能设置和属性信息.它的作用好比手机里的设置图标,点击这个图标就可以帮助我们查看手机的属性信息和设置功能.其 ...
- Mybatis核心配置文件中的标签介绍
0. 标签顺序 Mybatis核心配置文件中有很多标签,它们谁谁写在前写在后其实是有顺序要求的: 从前到后: properties?,settings?,typeAliases?,typeHandle ...
- MyBatis全局配置文件标签详解
一.全局配置文件结构 configuration 配置 properties 属性:可以加载properties配置文件的信息 settings 设置:可以设置mybatis的全局属性 typeAli ...
- mybatis全局配置文件
一.properties:引入外部配置文件 1.resource :引入类路径下的全局配置文件,例如:<properties resource="conf/dbconfig.prope ...
- MyBatis全局配置文件MyBatis-config.xml代码
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
随机推荐
- MySQL高级知识(五)——索引分析
前言:前面已经学习了explain(执行计划)的相关知识,这里利用explain对索引进行优化分析. 0.准备 首先创建三张表:tb_emp(职工表).tb_dept(部门表)和tb_desc(描述表 ...
- Python中的__new__()方法与实例化
@Python中的__new__()方法与实例化 __new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在Python 中 存在于类里面的构造方法__init__ ...
- Google Colab 基本操作
## 上传 from google.colab import files uploaded = files.upload() for fn in uploaded.keys(): print('Use ...
- java 图片转换成base64字符串
import java.io.ByteArrayOutputStream; import java.io.FileInputStream;import java.io.FileOutputStream ...
- arduino json 解析
#include <ArduinoJson.h> void setup() { Serial.begin(9600); DynamicJsonDocument jsonBuffer(200 ...
- Flask中无法在其他函数中查询Sqlachemy的解决办法
报错信息部分截取: File "D:\python 3.5\lib\site-packages\flask_sqlalchemy\__init__.py", line 912, i ...
- JS中navigator对象详解
<code class="language-html"><!doctype html> <html> <head> <meta ...
- LOJ2527 HAOI2018 染色 容斥、生成函数、多项式求逆
传送门 调了1h竟然是因为1004535809写成了998244353 "恰好有\(K\)种颜色出现了\(S\)次"的限制似乎并不容易达到,考虑容斥计算. 令\(c_j\)表示强制 ...
- 自定义实现moveable button
实现的效果图: 自定义MVButton,继承自UIButton. 属性声明如下: @property (nonatomic) CGPoint beginPoint; @property (nonato ...
- SCOI2019d1t1平台跳跃[高精]
分析 首先考虑相邻柱子之间没有浮台. 记前 \(m-1\) 个盘子为 x, 第 \(m\) 个盘子为 y,有如下过程:\(x\rightarrow C, y\rightarrow B, x\right ...