mapper

将sql映射注册到全局配置中,这个我们在上一章已经使用过了,

  1. resource

    这个属性是用来引用类路径下的sql映射文件

  2. url

    这个属性是用来引用网络路径或磁盘路径下的sql映射文件

  3. class

    直接引用接口(注册接口),这里需要把接口和映射文件放在同一文件夹下,而且要保证,两者同名。

    如果你是使用IDEA,这里需要大家注意一件事,由于新版的IntelliJ IDEA不再编译source folder下的xml文件,而我们平时使用mybatis时,习惯于将*Mapper.xml文件放在与dao层、service层平级的src目录下。这就导致ItelliJ IDEA不会变异这些xml文件夹,从而导致Invalid bound statement (not found)的发生。

    我们需要在pom.xml文件的<build>标签加入以下代码:

    1. <resources>  
    2.   <resource>  
    3.     <directory>src/main/java</directory>  
    4.     <includes>  
    5.       <include>**/*.xml</include>  
    6.     </includes>  
    7.   </resource>  
    8. </resources>  

    当然还有一种方法∑(っ°Д°;)っ:

    mybatis是支持没有sql映射文件,所有的sql都是利用注解写在接口上:

    1. package com.figsprite.dao;  
    2.     
    3. import com.figsprite.bean.Employee;  
    4. import org.apache.ibatis.annotations.Select;  
    5.     
    6. public interface EmployeeMapperAnnotation {  
    7.     @Select("select id,last_name lastName,gender,email from tb_employee where id = #{id}")  
    8.     Employee getEmpById(Integer id);  
    9. }  
    1. @Test  
    2. public void test2() throws IOException {  
    3.     SqlSession openSession = getSqlSessionFactory().openSession();  
    4.     
    5.     try {  
    6.         EmployeeMapperAnnotation employee = openSession.getMapper(EmployeeMapperAnnotation.class);  
    7.         employee.getEmpById(1);  
    8.         System.out.println(employee);  
    9.     }finally {  
    10.         openSession.close();  
    11.     }  
    12. }  

    这种方式比较简单,但是违背了Mybatis的初衷——抽离sql语句,建议比较重要的sql写在xml文件里,而比较简单的,我们就写在java代码里。

如果我们的接口中有很多种方法对应sql语句,那么,我们一句一句sql写起来是不是很麻烦?因此Mybatis提供了批量注册的标签package

与别名中的package使用相同

<package name="包名"/>

可想而知,注解版的mapper是没有问题的,但是通过xml文件配置的,就会有问题了,因此必须要放在同包下,并且同名。

  1. <mappers>  
  2.     <package name="com.figsprite.dao"/>  
  3. </mappers>  

另外强调一点,全局配置文件中的这些标签是有顺序要求的,不按顺序些会报错

MyBatis全局配置文件的各项标签3的更多相关文章

  1. MyBaits全局配置文件的各项标签1

    ■dtd约束     <!DOCTYPE configuration           PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...

  2. MyBaits全局配置文件的各项标签2

    ▲typeHandlers 类型处理器,它架起数据库和JavaBean一一映射的桥梁,这里需要注意一下,java在JDK1.8之前,日期处理函数并不丰富,但在JDK1.8之后引入JSR-310标准,这 ...

  3. Mybatis全局配置文件详解(三)

    每个基于Mybatis应用都是以一个SqlSessionFactory实例为中心.SqlSessionFactory实例可以由SqlSessionFactoryBuild获得,而SqlSessionF ...

  4. Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml

    比如针对我这个项目的mybatis全局配置文件SqlMapConfig.xml做一些说明: <?xml version="1.0" encoding="UTF-8& ...

  5. MyBatis 全局配置文件详解(七)

    MyBatis 配置文件作用 MyBatis配置文件包含影响 MyBatis 框架正常使用的功能设置和属性信息.它的作用好比手机里的设置图标,点击这个图标就可以帮助我们查看手机的属性信息和设置功能.其 ...

  6. Mybatis核心配置文件中的标签介绍

    0. 标签顺序 Mybatis核心配置文件中有很多标签,它们谁谁写在前写在后其实是有顺序要求的: 从前到后: properties?,settings?,typeAliases?,typeHandle ...

  7. MyBatis全局配置文件标签详解

    一.全局配置文件结构 configuration 配置 properties 属性:可以加载properties配置文件的信息 settings 设置:可以设置mybatis的全局属性 typeAli ...

  8. mybatis全局配置文件

    一.properties:引入外部配置文件 1.resource :引入类路径下的全局配置文件,例如:<properties resource="conf/dbconfig.prope ...

  9. MyBatis全局配置文件MyBatis-config.xml代码

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

随机推荐

  1. 【SDOI2014】向量集

    [SDOI2014]向量集 题目描述 我们分析一波: 假设我们询问\((A,B)\),\(x_i>x_j\)若 \[ A\cdot x_i+B\cdot y_i>A\cdot x_j+B\ ...

  2. SICP 习题 (1.43)解题总结

    SICP 习题 1.43 是前面两道题的延续,习题要求我们定义一个过程(repeat f n) .当中f是一个单參数过程.题目要求我们通过repeat过程将过程f调用n次,注意是嵌套调用n次,不是连续 ...

  3. json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES

    php格式化json的函数json_encode($value,$options) 其中有2个比较常用到的参数 JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 2 ...

  4. (二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列

    参考网站 1该mqtt光平台可以让您控制您的MQTT启用灯.它支持设置亮度,色温,效果,闪烁,开/关,RGB颜色,过渡,XY颜色和白色值. https://www.home-assistant.io/ ...

  5. 03 python 初学(字符格式化输出)

    #_author: lily #_date: 2018/12/16 name = input("your name: ") age = input("your age: ...

  6. 转发 .Net平台下ActiveMQ入门实例 https://www.cnblogs.com/madyina/p/4121458.html

    1.ActiveMQ简介 先分析这么一个场景:当我们在网站上购物时,必须经过,下订单.发票创建.付款处理.订单履行.航运等.但是,当用户下单后,立即跳转到“感谢那您的订单” 页面.不仅如此,若果没有延 ...

  7. python 自动获取星期

    自动获取星期: >>> from time import time,localtime,strftime>>> x=localtime(time())>> ...

  8. C#邮件发送类 简单实用 可自定义发件人名称

    上图看效果 MailHelper: public class MailHelper { public bool SendMail(MailSender sender,out string errorM ...

  9. win2016 配置IIS 和mysql5.7 迁移数据表的两个小坑

    今天配置一整天,就IIS都装了一整天,都是没办法安装.net3.5的问题. 最后解决办法:https://help.aliyun.com/knowledge_detail/38203.html?spm ...

  10. plw的骰子

    链接 [http://murphyc.fun/problem/4007] 题意 描述 duxing2016有一个神奇的骰子,投出1-6的概率为(p1,p2...p6) 现在他投n次骰子,问投出点数和大 ...