Dao层mapper开发
不用去写实现类,他会代理方式自动生成实现代码。想要使用mapper开发,必须遵循以下原则
1. 接口的名字建议和mapper映射文件的名字保持一致 namespace 必须和接口的完整路径名保持一致
2. 接口的中的方法名 必须和mapper中的id保持一致
3. 方法返回值要和配置中的resultType保持一致
4. 参数的类型必须保持一致
在代码中就不需要关注sqlSession 对象的方法调用了insert update delete selectOne selectList
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User userById = mapper.findUserById(4);
返回一个接口的代理对象 直接调用该对象的方法即可
public void fun() throws IOException {
InputStream in = Resources.getResourceAsStream("cn/hd/dao/sqlMapConfig.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
SqlSession sqlSession = sessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User userById = mapper.findUserById(4);
System.out.println(userById);
sqlSession.close();
}
注意:
使用mapper开发,他的参数永远只有一个(解决问题的方法 将多的参数封装成pojo类)
Mybatis自动识别接口中方法的返回值,从而调用session selectOne和selectList方法