以下内容引用自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. linux之文件基本操作学习笔记
  2. 关于Taptic Engine震动反馈
  3. 2013秋浙大远程教育计算机应用基础-9计算机多媒体技术,2013秋浙大远程教育计算机应用基础-9...
  4. WEB项目 后台接收前端数组
  5. 【译】A Practical Introduction to Blockchain with Python
  6. Shortcut setting in Webclient UI
  7. cesium 经纬度绘制点_NCL绘制2016年1号台风(Nepartak)
  8. ae saber插件_【AE插件】 用于做动画制作/设计的五个免费插件 非常好用
  9. CSS3: 利用分层动画让元素沿弧形路径运动
  10. BZOJ1880:[SDOI2009]Elaxia的路线(最短路,拓扑排序)
  11. 一个前端html模板处理引擎(javascript) - pure
  12. tp5 自定义配置文件
  13. 数据分析 超市条码_超市小程序做得比较好的功能点是什么?
  14. 中联医疗系统服务器,中联电子病历系统(ZLEMR)
  15. 软件项目管理题目汇总
  16. u深度重装系统详细教程_u深度u盘怎么安装深度xp系统?u深度u盘装系统教程
  17. QT动态加载DLL包括加载DLL中的类及其成员函数
  18. 黑客入侵16进制密码_密码与密码黑客如何诱骗您入侵您的详细信息
  19. 广域网技术——iFIT
  20. WINDOW -- 给硬盘分盘以及合盘

热门文章

  1. 活动目录建立IIS站点
  2. .Net Compact Framework 基础篇(10)--多语言程序的定制
  3. Shell命令-系统信息及显示之stat、du
  4. 23种设计模式-装饰模式
  5. Linux进程学习(孤儿进程和守护进程)
  6. Partition分区的使用案例
  7. 数据可视化平台由哪些要素组成
  8. 商业数据分析的层次与步骤有哪些
  9. Hive(五)——查询
  10. wpf 加载列表不卡顿_看高清视频,如何做到不卡顿?