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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章