为了简化MyBatis的使用MyBatis的使用,MyBatis提供了接口方式自动化生成调用过程,可以大大简化MyBatis的开发

开发映射文件:

    <select id="queryOne" resultType="cn.tedu.mybatis.beans.User">
select * from user where id = #{id}
</select>
    <select id="queryAll" flushCache="true" resultType="Alias_User">
<include refid="saUser"/>
</select>

开发接口:

接口的名字和映射文件的名字相同,接口中方法的名字和要调用的映射文件中的标签的id相同,

方法的参数和被调用的标签中的sql中需要的参数对应

package cn.tedu.mybatis.beans;

import java.util.List;

public interface UserMapper {
public User queryOne(int id);
public List<User> queryAll();
}

开发测试类:

    // 根据配置文件创建sqlSessionFactory
private SqlSessionFactory factory = null;
@Before
public void before() throws Exception{
//1.读取MyBatis核心配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//2.根据配置文件创建sqlSessionFactory
factory = new SqlSessionFactoryBuilder().build(in);
} /**
* 通过接口操作MyBatis
*/
@Test
public void test18(){
//1.第一次事务
SqlSession session = factory.openSession();
//2.通过接口获取映射对象
UserMapper usermapper = session.getMapper(UserMapper.class);
//3.通过映射对象调用方法
User user = usermapper.queryOne(1);
List<User> list = usermapper.queryAll();
//4.打印结果
System.out.println(user);
System.out.println(list);
}

真正开发中,都是使用这种接口+配置文件方式,实现MyBatis的使用

调用过程

MyBatis 接口的使用的更多相关文章

  1. 基于SSM之Mybatis接口实现增删改查(CRUD)功能

    国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...

  2. Mybatis接口编程原理分析(三)

    前面两篇博客Mybatis接口编程原理分析(一)和Mybatis接口编程原理分析(二)我们介绍了MapperProxyFactory.MapperProxy和MapperMethod的操作及源码分析, ...

  3. Mybatis接口编程原理分析(二)

    在上一篇博客中 Mybatis接口编程原理分析(一)中我们介绍了MapperProxyFactory和MapperProxy,接下来我们要介绍的是MapperMethod MapperMethod:它 ...

  4. Mybatis接口编程原理分析(一)

    Mybatis接口编程示例 (1)首先定义接口编程需要的接口及其方法 public interface IUserMapper { public User getById(int id);//接口方法 ...

  5. Mybatis 接口代理的实现(BeanDefinitionRegistryPostProcessor+FactoryBean)

    相信在开发中,尤其是mybatis 配置操作中,我们只需要提供一个mapper 接口,然后注入到service 中,就可以进行调用. 按我们的一般逻辑来说,我们并没有进行接口的实现,应该会报空指针异常 ...

  6. mybatis 接口绑定 和 动态SQL

    一.MyBatis 接口绑定方案及多参数传递 1.作用:实现创建一个接口后把mapper.xml由mybatis生成接口的实现类,通过调用接口对象就可以获取mapper.xml中编写的sql 2.后面 ...

  7. 【转】MyBatis接口的简单实现原理

    MyBatis接口的简单实现原理 用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? 那是因为MyBatis使用Java动态代理实现的接口. 这里仅仅 ...

  8. MyBatis接口的简单实现原理

    MyBatis接口的简单实现原理 用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? 那是因为MyBatis使用Java动态代理实现的接口. 这里仅仅 ...

  9. spring整合mybatis接口无法注入问题

    在学习Spring完之后简单的了解了MyBatis.然后进行简单的整合,遇到MyBatista接口映射的Bean无法自动注入的问题: 代码异常: 线程“main”org.springframe .be ...

随机推荐

  1. find 以及linux 和windows 文件互传

    1. find  命令  查找文件或目录 同时也会用到的有 which   whereis   locate   经常也会遇到一些快捷键  ctrl  +  l  e  a  w  u  k     ...

  2. 更换JDK版本时的问题:Error: could not open `C:\Java\jre7\lib\amd64\jvm.cfg'

    1.先把oracle自带的weblogic给卸载了,然后打开eclipse,发现报错了:Error: could not open `C:\Java\jre7\lib\amd64\jvm.cfg' J ...

  3. Ideal部署web工程

  4. Cocos闪屏视频VideoPlayer踩坑记录

    游戏闪屏动画(Logo&健康游戏公告)使用了 experimental::ui::VideoPlayer 来播放视频 3.7版本开发到目前为止发现2个坑 1.设置大小 _videoPlayer ...

  5. django JsonResponse和HttpResponse的在后端和前端区别

    JsonResponse和HttpResponse的区别 1.from django.http import JsonResponse return JsonResponse('例子') 2.impo ...

  6. djjango cookie和session 的几种常用需求使用方法

    ------https://www.cnblogs.com/liuqingzheng/articles/8990027.html 需求情形一:正常设置cookie set_cookie(key,val ...

  7. acm 2072

    ////////////////////////////////////////////////////////////////////////////////#include<iostream ...

  8. 【java编程】加密算法-对称加密及AES加密算法

    转载:https://www.jianshu.com/p/3840b344b27c?utm_campaign=maleskine&utm_content=note&utm_medium ...

  9. jenkins 使用smtp2http 邮件服务,扩展灵活的构建通知功能

    smtp2http 是一个很方便的可以将smtp 转换为http 服务的工具,同时也支持扩展的开发,我们可以使用此工具 扩展灵活的ci.cd 生命周期管理,而不是简单的邮件处理 备注: 使用docke ...

  10. MATLAB中多个一维数组的合并

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013538664/article/details/37673711 1.一维数组直接合并      ...