mybatis面向接口的编程

时间:2023-03-10 08:33:37
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对象