如果不写实现类,他会使用代理的方式生成实现代码。想要使用mapper开发,必须遵循以下原则:
① 接口的名字建议和mapper映射文件的名字保持一致,并且在同一目录下,
cn.hd.dao.UserMapper
② 接口中方法名必须和mapper中的id保持一致
③ 方法的返回值要和配置文件中的resourceType保持一致。
④ 参数的类型必须保持一致
在代码中就不需要关注sqlSession对象的方法调用了insert update delete selectOne selectList
UserMapper mapper = session.getMapper(UserMapper.class);
返回的是一个接口的代理对象,直接调用在对象的方法即可。
InputStream inputStream = Resources.getResourceAsStream("cn/hd/dao/sqlMapConfig.xml");
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = build.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.findUserById(5);
System.out.println(user);
注:使用mapper开发,它的参数必须只有一个。(解决的方法,将多的参数封装成pojo类)
Mybatis自动识别方法的返回值,从而调用session的selectOne和selectList方法