mybatis面向接口的编程
一.实现面向接口编程
具体操作方法如下:
第一:编写一个接口(IUser.java)
接口暂时为空接口,接口文件包路径:com.gusi.demo.idao.IUser
第二:修改映射文件(User.xml)
将namespace属性值改为上面定义接口的类的全名称com.gusi,demo.idao.IUser。然后将每个sql语句的id记录下来,接受参数类型记录下来,以及返回类型记录下来
<mapper namespace="com.gusi.demo.idao.IUser"> <resultMap type="com.gusi.demo.pojo.User" id="UserResult">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="username" jdbcType="VARCHAR" property="username"/>
<result column="password" jdbcType="VARCHAR" property="password.encrypted"/>
<result column="administrator" jdbcType="BOOLEAN" property="administrator"/>
</resultMap>
<select id="find" parameterType="long" resultMap="UserResult">
11 SELECT * FROM user WHERE id = #{id:INTEGER}
</select>
</mapper>
第三:给上面的每一个sql语句在接口类IUser.java中添加一个接口方法
接口方法的返回类型就为上面记录的返回类型:com.gusi.demo.poji.User类型,当然这个地方也支持java基本类型和String类型
接口方法的名称就为上面记录sql语句的id:find,这个id在同一个namespace下是唯一的
接口方法的请求参数就为上面记录的参数类型:long,当然这个地方是支持javaBean类型的参数类型
package com.gusi.demo.idao;
public interface IUser{
public com.gusi.demo.pojo.User find(long id);//这就是对应的接口方法之一
}
第四:测试接口
SqlSession sqlSession = sqlSessionFactory.getSqlSession();//获得一个sqlSession
//以前代码写法如下:
//User user = sqlSession.selectOne("User.find",1L);
//改为面向接口编程:
IUser iUser = sqlSession.getMapper(IUser.class);//通过sqlSession获取对应注册接口
User user = iUser.find(1L);//直接调运接口方法就可以获得对应的User对象
mybatis面向接口的编程的更多相关文章
- Mybatis面向接口式编程
Mybatis面向接口编程 1.xml文件书写格式 <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 (2):数据 ...
- Java 面向接口的编程
面向接口的编程 什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能 ...
- MyBatis的接口式编程Demo
很久没细看过MyBatis了,时间一长就容易忘记. 下面是一个接口式编程的例子. 这里的例子一共分为4步: 1 首先要有一个namespace为接口的全类名的映射文件,该例中是 IMyUser.xml ...
- JAVA面向接口的编程思想与具体实现
面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的. 问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了 ...
- MyBatis源码解析【7】接口式编程
前言 这个分类比较连续,如果这里看不懂,或者第一次看,请回顾之前的博客 http://www.cnblogs.com/linkstar/category/1027239.html 修改例子 在我们实际 ...
- Kotlin编写Processing程序(使用函数式编程思维和面向接口方式)
写一例Kotlin编写的Processing程序,充分调用函数式编程思维和面向接口的编程思维,供自己和读者参考学习. 初衷 想要实现一行行的文字排版功能,每一行作为一个单位,可制定显示的位置.大小.文 ...
- mybaits接口式编程
Mybatis是接口式编程实现对.xml中sql语句的执行,其过程如下(取自慕课网视频<通过自动回复机器人学Mybatis---加强版>): 1.加载配置信息2.通过加载配置信息加载一个代 ...
- javascript设计模式学习之十七——程序设计原则与面向接口编程
一.编程设计原则 1)单一职责原则(SRP): 这里的职责是指“引起变化的原因”:单一职责原则体现为:一个对象(方法)只做一件事. 事实上,未必要在任何时候都一成不变地遵守原则,实际开发中,因为种种原 ...
随机推荐
- Vue基本入门
介绍 1.Vue.js是什么? Vue.js(读音:/vju:/,类似于view)是一套构建用户界面的渐进式框架,与其他重量级框架不同的是,Vue采用的是自底向上增量开发的设计. Vue的核心库只关注 ...
- 3732: Network
3732: Network Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 395 Solved: 179[Submit][Status] Descr ...
- nodejs学习一
总觉得一个前端,不懂得一点后端的服务,弱弱的没有存在感,所以利用现在好好 学学有关nodejs 首先是windows上进行nodejs的全局安装 32 位安装包下载地址 : https://nodej ...
- 腾讯云数据库团队:SQL Server 数据加密功能解析
数据加密是数据库被破解.物理介质被盗.备份被窃取的最后一道防线:数据加密,一方面解决数据被窃取安全问题,另一方面有关法律要求强制加密数据:SQL Server 的数据加密相较于其他数据库,功能相对完善 ...
- 【树莓派】制作树莓派最小镜像:img裁剪瘦身
制作树莓派镜像,可以参考这篇文章:http://blog.csdn.net/talkxin/article/details/50456282 摘录部分要点内容如下(如果作者不允许转载,请联系即删除): ...
- windows phone 8.1开发:socket通信聊天
本例用WPF程序做服务器端,windows phone程序做客户端.我们使用基于UDP协议的Socket通信.更多关于socket信息请查看:http://msdn.microsoft.com/zh- ...
- cudaMemcpy与cudaMemcpyAsync的区别
转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5231857.html 简单可以理解为:cudaMemcpy是同步的,而cudaMemcpyAsync是异步的 ...
- WIMP环境搭建
h1 { color: #3366ff } p { font-size: 16px } body { background-color: rgb(200,200,169) } 环境说明 系统:wind ...
- Linux命令--su与sudo
su(switch user)命令的作用:切换用户,一般是普通用户与root用户之间的切换.例:>su #输入su命令Password: #提示输入密码 ...
- httpclient源码分析之 PoolingHttpClientConnectionManager 获取连接
PoolingHttpClientConnectionManager是一个HttpClientConnection的连接池,可以为多线程提供并发请求服务.主要作用就是分配连接,回收连接等.同一个rou ...