mybatis面向接口的编程

一.实现面向接口编程

  具体操作方法如下:

    第一:编写一个接口(IUser.java)

      接口暂时为空接口,接口文件包路径:com.gusi.demo.idao.IUser

    第二:修改映射文件(User.xml)

      将namespace属性值改为上面定义接口的类的全名称com.gusi,demo.idao.IUser。然后将每个sql语句的id记录下来,接受参数类型记录下来,以及返回类型记录下来

  

 1 <mapper namespace="com.gusi.demo.idao.IUser">  
 2 
 3    <resultMap type="com.gusi.demo.pojo.User" id="UserResult">  
 4      <id column="id" jdbcType="INTEGER" property="id"/>  
 5      <result column="username" jdbcType="VARCHAR" property="username"/>  
 6      <result column="password" jdbcType="VARCHAR" property="password.encrypted"/>  
 7      <result column="administrator" jdbcType="BOOLEAN" property="administrator"/>  
 8    </resultMap>  
 9   
10   <select id="find" parameterType="long" resultMap="UserResult">  
11     SELECT * FROM user WHERE id = #{id:INTEGER}  
12   </select>  
13 </mapper>  

    第三:给上面的每一个sql语句在接口类IUser.java中添加一个接口方法

      接口方法的返回类型就为上面记录的返回类型:com.gusi.demo.poji.User类型,当然这个地方也支持java基本类型和String类型

      接口方法的名称就为上面记录sql语句的id:find,这个id在同一个namespace下是唯一的

      接口方法的请求参数就为上面记录的参数类型:long,当然这个地方是支持javaBean类型的参数类型

1 package com.gusi.demo.idao;  
2 public interface IUser{  
3     public com.gusi.demo.pojo.User find(long id);//这就是对应的接口方法之一  
4 }  

    第四:测试接口

1 SqlSession sqlSession = sqlSessionFactory.getSqlSession();//获得一个sqlSession  
2 //以前代码写法如下:  
3 //User user = sqlSession.selectOne("User.find",1L);  
4 //改为面向接口编程:  
5 IUser iUser = sqlSession.getMapper(IUser.class);//通过sqlSession获取对应注册接口  
6 User user = iUser.find(1L);//直接调运接口方法就可以获得对应的User对象  
原文地址:https://www.cnblogs.com/sxl920624/p/6738389.html