MyBatis全局配置文件的各项标签3

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>  

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

转载于:https://www.cnblogs.com/figsprite/p/10732021.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值