博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis中的@Mapper注解及配套注解使用详解(上)
阅读量:6849 次
发布时间:2019-06-26

本文共 2592 字,大约阅读时间需要 8 分钟。

前言:

从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件(那个xml写的是真的蛋疼。。。)。很恶心的一个事实是源码中并没有对于这个注解的详细解释
现在我们通过一个简易的maven项目去了解@Mapper注解的使用方式
完整项目请访问我的下载
  1. 构建一个maven的web项目,目录结构如下: 
    这里写图片描述
  2. 导入相应的依赖
  3. org.mybatis
    mybatis
    3.4.5
    org.mybatis
    mybatis-spring
    1.3.1
    org.springframework
    spring-webmvc
    5.0.2.RELEASE
    org.springframework
    spring-tx
    5.0.2.RELEASE
    org.apache.logging.log4j
    log4j-core
    2.7
    com.alibaba
    druid
    1.1.6
    org.springframework
    spring-jdbc
    5.0.2.RELEASE
    mysql
    mysql-connector-java
    6.0.6
  4. 这里写图片描述 

3. 上代码

//UserDAOimport org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select; import entity.User; /** * 添加了@Mapper注解之后这个接口在编译时会生成相应的实现类 *  * 需要注意的是:这个接口中不可以定义同名的方法,因为会生成相同的id * 也就是说这个接口是不支持重载的 */@Mapperpublic interface UserDAO {     @Select("select * from user where name = #{name}")    public User find(String name);     @Select("select * from user where name = #{name} and pwd = #{pwd}")    /**      * 对于多个参数来说,每个参数之前都要加上@Param注解,      * 要不然会找不到对应的参数进而报错      */    public User login(@Param("name")String name, @Param("pwd")String pwd);}

 

测试类代码

import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; import dao.UserDAO;import entity.User; public class TestCase {     @Test    public void testMapper() {        ApplicationContext ac = new ClassPathXmlApplicationContext("spring-mybatis.xml");        UserDAO dao = ac.getBean(UserDAO.class);        User u1 = dao.find("hehe");        User u2 = dao.login("hehe", "123");        System.out.println(u1.getName().equals(u2.getName()));    }}

 

测试结果:

这里写图片描述

 

你可能感兴趣的文章
Java连接redis的使用演示样例
查看>>
CreateProcess参数传递
查看>>
Linux下*.tar.gz文件解压缩命令
查看>>
POJ 2057 The Lost House
查看>>
qmf
查看>>
自定义的圆形ProgressBar
查看>>
void及void指针含义的深刻解析
查看>>
[SQL]死锁处理语句
查看>>
Unicode和UTF-8的关系
查看>>
如何在应用系统中实现数据权限的控制功能(2)
查看>>
HDU 2521 反素数
查看>>
二进制的计算(计算机为什么采用补码存储数据)
查看>>
一步一步写算法(之hash表)
查看>>
【BZOJ】3392: [Usaco2005 Feb]Part Acquisition 交易(spfa)
查看>>
Asp.net导出Excel/Csv文本格式数据
查看>>
Log4net简介
查看>>
图像切割之(五)活动轮廓模型之Snake模型简单介绍
查看>>
AAM(Active Appearance Model)算法介绍
查看>>
Java 开源博客——B3log Solo 0.6.6 正式版公布了!
查看>>
平衡二叉树
查看>>