一.实现面向接口编程
具体操作方法如下:
第一:编写一个接口(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对象