简单实现通过代理接口来实现对数据的查询demo,也是对mybatis的一个熟练。首先是编写接口代理。
public interface IBookMapper {
     List<BookModel> getBookList() throws Exception;
  }
代理接口编写完毕后,需要在sqlMapConfig中添加映射,同时编码对应的mapper配置。我的接口和接口对应的mapper.xml是放在一个包下面的,目的是为了通过mappers映射器的package映射直接映射类过来。
<configuration>
  <properties resource="book.properties">
  </properties>
	  <environments default="mysql">
		    <environment id="mysql">
			      <transactionManager type="JDBC" />
			      <dataSource type="POOLED">
				        <property name="driver" value="${jdbc.driver}" />
				        <property name="url"
					          value="jdbc:mysql://localhost:3306/mytest?characterEncoding=utf-8" />
				        <property name="username" value="${jdbc.username}" />
				        <property name="password" value="${jdbc.pwd}" />
			      </dataSource>
		    </environment>
	  </environments>
	  <mappers>
		    <package name="Mapper" />
	  </mappers>
</configuration>
对应的mapper配置
<mapper namespace="Mapper.IBookMapper">
	  <select id="getBookList" resultType="Models.BookModel">
		      select * from book
	  </select>
</mapper>
需要注意的是:mapper配置中的namespace是我们要找的代理接口,需要整个命名空间权限名。我们在sqlSessionConfig中的mappers映射器中的pacakge的name是我们要去映射的包,包里面有我们的代理接口和映射配置文件,配置文件的名字和代理接口的名字是一样的。如下图:

基本已经完成,接下来我们开始通过junit来测试我们的结果。
  @Test
	  public void selectTest() {
		    SqlSession openSession = factory.openSession();
		    IBookMapper mapper = openSession.getMapper(IBookMapper.class);
		    List<BookModel> list = null;
		    try {
			      list = mapper.getBookList();
		    } catch (Exception e) {
			      e.printStackTrace();
		    }
		    openSession.close();
		    if (list != null) {
			      for (BookModel b : list) {
				        System.out.println(b);
			      }
		    }
}
测试结果,在我们的控制台输出我们的查询结果:
  
对于学习新的东西,有人指导一下我想会更好,没有指导,在自己学完以后,做个demo是对所学的东西的最好的诠释。即使有人指导,有人教,那么在听取以后,要去思考把东西融入到自己的理解中然后按照自己的理解去demo一下会更加能加深对知识的巩固。一定是接着别人的讲,而不是按照别人的讲。更多的是要去与大家分享,很可能会得到更多的收获。
原文:http://www.cnblogs.com/hackerxiaoyon/p/7172050.html