以下内容引用自http://www.yihaomen.com/article/java/304.htm,不过内容有修改:

继前一篇文章http://www.cnblogs.com/EasonJim/p/7049248.html,已经配置好MyBatis的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:

session.selectOne("com.jsoft.testmybatis.models.UserMapper.selectUserByID", 1)

其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细过程:

建立com.jsoft.testmybatis.inter 这个包,并建立接口类IUserOperation , 内容如下:

package com.jsoft.testmybatis.inter;import com.jsoft.testmybatis.models.User;public interface IUserOperation {public User selectUserByID(int id);}

注意:这里面有一个方法名selectUserByID必须与User.xml里面配置的select的id对应(<select id="selectUserByID");并且mapper的namespace也要改成<mapper namespace="com.jsoft.testmybatis.inter.IUserOperation">,可以看出是对应接口的。

重写测试代码:

public class App
{public static void main( String[] args ) throws IOException{InputStream inputStream = Resources.getResourceAsStream("Configuration.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession session = sqlSessionFactory.openSession();try {IUserOperation userOperation = session.getMapper(IUserOperation.class);User user = userOperation.selectUserByID(1);System.out.println(user.getUserAddress());System.out.println(user.getUserName());} finally {session.close();}}
}

测试结果:

整个工程的结构如下:

测试工程:https://github.com/easonjim/5_java_example/tree/master/mybatis/test2

==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==

MyBatis3-以接口方式编程相关推荐

  1. MyBatis运行原理(三)接口式编程及创建代理对象原理分析

    一.面向接口开发步骤 定义代理接口,将操作数据库的方法定义在代理接口中. 在SQL 映射文件中编写SQL 语句. 将SQL 映射文件注册在MyBatis 的全局配置文件中. 编写测试代码. 二.环境准 ...

  2. c++以代理的方式来实现接口化编程

    假如你项目代码本身已经实现了很多的实体类,但并未采用接口,可以考虑以这种方式来实现接口化编程 struct ITest {virtual void Test()=0; };class CTest { ...

  3. 正方形的面积用java写,java 编程 使用接口方式计算圆和正方形的面积(S)和周长(L)...

    interface Cal{ //使用接口方式计算圆和正方形的面积(S)和周长(L);cal:计算器; //get 获得 public static final double PI = 3.14; / ...

  4. FPGA之道(58)关于外界接口的编程思路

    文章目录 前言 关于外界接口的编程思路 按传递方向分类 输入接口 输出接口 双向接口 原理简介 工作模式 主从模式 对等模式 简单示例 按电气特性分类 单端接口 差分接口 无线接口 按功能特性分类 时 ...

  5. matlab都有什么接口,介绍MATLAB与C++的几种接口方式

    matlab调用c++,应该用mex把cpp编译成 .mex文件供MATLAB在命令行方式下调用吧 看下面这片文章 文章: 摘自北京理工大学BBS MATLAB是什么东东?不用我多说了,大批的高手会告 ...

  6. golang 切片 接口_Go编程模式:切片,接口,时间和性能

    在本篇文章中,我会对 Go 语言编程模式的一些基本技术和要点,这样可以让你更容易掌握 Go 语言编程.其中,主要包括,数组切片的一些小坑,还有接口编程,以及时间和程序运行性能相关的话题. 本文是全系列 ...

  7. 键盘计算机编程,键盘接口与编程

    键盘接口与编程 键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令.地址和数据.一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它 ...

  8. java接口返回xml格式_xml格式接口数据编程实战

    系统对外提供接口,或者系统调用外部接口,常常会使用xml格式作为接口数据传输格式(json数据,txt文本数据亦可),下面讲讲xml数据的生成和解析. 首先讲讲xml数据生成,通常可以用两种方法,使用 ...

  9. SAP系统接口方式:

    SAP系统接口方式: 1.PI - 信使中间件 (大公司多选择) 数据: SAP- PI- U8 U8- PI- SAP PI 底层用的还是webservice 技术 优点:实时性高: 可处理大数据( ...

最新文章

  1. Topcoder SRM 663 DIV 1
  2. jQuery案例(底部导航图片切换)
  3. iOS安全之二次封装AFN并设置请求头/执行HTTPS加强安全
  4. zabbix_get 命令介绍
  5. 《TCP/IP详解》学习笔记(二):数据链路层
  6. python学习之面向对象学习进阶
  7. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E. Half-consecutive Numbers
  8. python常见的错误类型_python中新手朋友常见的错误信息汇总
  9. MASM5.0下载安装与运行第一个HelloWorld
  10. 太阳能热水器系统设计
  11. HTML+CSS练习——实现京东登录静态页面
  12. 多种好看好玩的词云例子Example
  13. 每日一题 第二次考试 数据库题目,7.17数据库面试题目补充
  14. Linux 下的zip,rar
  15. 笔记本电脑切换不到投影仪 问题 解决方法
  16. AI如何挑战传统翻译
  17. 2018年全国多校算法寒假训练营练习比赛(第二场)H-了断局
  18. 杭州python怎么样_杭州python需要具备什么
  19. MicrobiomeAnalyst 文件配置及使用
  20. linux 鼠标驱动

热门文章

  1. 高通针对LED应用的点阵字库解决方案 — 支持多种字号字体显示
  2. redis学习-03
  3. 企业引进HRM系统需要规避的五大误区
  4. Nginx 与 FPM 的工作机制
  5. OpenSuse11.4+Apache+Django搭建Webserver
  6. 续《用最简单的例子实现jQuery图片即时上传》之多图上传实现
  7. 浏览器汇总介绍--Opera
  8. Q96:PT(3.4):砂岩纹理(Sandstone Texture)
  9. php加入语音播报功能_一个有语音播报功能的网络聊天室PHP源码
  10. 开源linux 二进制工具,又一款开源好物:逐字节分析的二进制数据分析工具bitinsight...