MyBatis的getMapper()接口

MyBatis的getMapper()接口
一、getMapper()接口

解析:getMapper()接口 IDept.class定义一个接口,

挂载一个没有实现的方法,特殊之处,借楼任何方法,必须和小配置中id属性是一致的

通过代理:生成接口的实现类名称,在MyBatis底层维护名称$$Dept_abc,selectDeptByNo()

相当于是一个强类型

Eg

第一步:在cn.happy.dao中定义一个接口

复制代码
package cn.happy.dao;

import java.util.List;

import cn.happy.entity.Dept;

public interface IDeptDao {
//查看全部---------getAllDept要和小配置里面的id一样
public List getAllDept();
}
复制代码
  第二步:IDept.xml配置小配置

解析:select里面的Id属性要和接口里面的接口方法名一样;mapper的namespace属性包名是cn.happy.dao.IDeptDao接口

复制代码

select * from Dept 复制代码   第三步:测试类

解析:查看全部信息有两种方法

1)session.selectList(“cn.happy.dao.IDeptDao.getAllDept”);-------实体类.小配置里面的Id名称============字符串

2)IDeptDao mapper = session.getMapper(IDeptDao.class);相当于实现类,getMapper是一个强类型
复制代码
// 01查看全部信息getMapper()接口类的方法名要和小配置的id一样
@Test
public void testSelectAll() {
SqlSession session = factory.openSession();
//用的是弱类型实体类.小配置里面的Id名称====字符串
/List list = session.selectList(“cn.happy.dao.IDeptDao.getAllDept”);
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
/

     // 用getMapper方法HIbernate帮我们在内存中代理出一个接口的实现类======相当于强类型
     //mapper是一个实现类对象
    IDeptDao mapper = session.getMapper(IDeptDao.class);
    List list = mapper.getAllDept();
    for (Dept dept : list) {
        System.out.println(dept.getDeptName());
    }

复制代码

你可能感兴趣的:(学习笔记)