mapper代理開發方法

思路:只需要寫mapper接口(相當於dao接口)和mapper.xml映射文件
開發規範:

  1. 在mapper.xml中namespace等於mapper接口地址
  2. mappper.java接口方法中的方法名和mapper.xml中statement的id一致
  3. mapper.java接口中的方法輸入參數類型和mapper.xml中的statement的parameterType指定的類型一致
  4. mapper.java接口中的方法返回值類型和mapper.xml和statem的resultType指定的類型一致

    總結:以上開發規範主要是對下邊的代碼進行統一生成:

原始dao方法

User user=sqlSession.selectOne("test.findUserById",id);
sqlSession.insert("test.insertUser",user);

 使用這種原始方法:映射文件的namespace可隨意,在mybatis配置文件中使用
 <mappers>
     <mapper resource="mysql/usermapper.xml"/>
    </mappers>

mapper代理方法

 public static  void main(String []args) throws Exception{ 
      String resource="mybatis-config.xml";
     InputStream  inputStream=Resources.getResourceAsStream(resource);
      SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
       SqlSession session=sqlSessionFactory.openSession();
       Studentdao studentdao=session.getMapper(Studentdao.class);
       Student student= studentdao.findStudent(1); 


       Student student2 =new Student();
       student2.setSex("男");
       student2.setSname("dsihdsi");
       studentdao.insertToStudent(student2);
       session.commit();
       System.out.println(student2.getSid());
       System.out.println(student.toString());
}

使用這種mapper接口方法:需要將映射文件的namespace設置爲dao接口的文件名(包含包名),mybatis配置文件中添加映射文件:
<mappers>
     <mapper resource="mysql/usermapper.xml"/>
    </mappers>

注:SqlSession 線程不安全,所以使用局部變量;SqlSessionFactory 使用單例模式進行傳入。

通過mapper接口加載單個映射文件

遵循一些規範:需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個目錄中
上邊規範的前提是:使用的是mapper代理方法

<mappers>
     <mapper class="" />
    </mappers>

批量加載mapper

遵循加載單個映射文件的規範

<mappers>
      <package name=""/>
    </mappers>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章