zoukankan      html  css  js  c++  java
  • mybatis代理类Demo

    前言

      简单实现通过代理接口来实现对数据的查询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一下会更加能加深对知识的巩固。一定是接着别人的讲,而不是按照别人的讲。更多的是要去与大家分享,很可能会得到更多的收获。

                don't say you finish study,no,it just as  beginning

  • 相关阅读:
    「日常训练」Single-use Stones (CFR476D2D)
    「日常训练」Greedy Arkady (CFR476D2C)
    「Haskell 学习」二 类型和函数(上)
    「学习记录」《数值分析》第二章计算实习题(Python语言)
    「日常训练」Alena And The Heater (CFR466D2D)
    Dubbo 消费者
    Dubbo 暴露服务
    Rpc
    git fail to push some refs....
    Spring Cloud (6)config 客户端配置 与GitHub通信
  • 原文地址:https://www.cnblogs.com/hackerxiaoyon/p/7172050.html
Copyright © 2011-2022 走看看