使用Mybaities来完成mapper代理的开发方法。
首先先看mapper代理的好处:
不用mapper代理的方法:
需要传入配置文件中的标签方法。很不方便。
再看mapper代理的方法:
需要通过接口代理的方法便可去除sql方法标签
1.先建立一个接口,实现的方法为所有想要实现的功能的方法
2.使用mapper代理后映射文件的namespace为接口的路径名,这就实现了代理的方式
3.实现一个继承方法接口的类。
以一个查找方法来实现:
<!--
mapper代理中,id必须和mapper接口的方法名一致
parameterType必须和接口方法的参数类型一致
resultType必须和返回类型一致
-->
<select id="findUserById" parameterType="int" resultType="User">
select * from mb_test where id=#{id}
</select>
4.再实现类中的方法没什么不同
class MapperTestMethod implements UserMapper
{
private SqlSessionFactory sqlSessionFactory;
@Override
public User findUserById(int id) throws Exception {
建立sqlsession
String resource ="sqlMapConfig.xml";
InputStream inputstream = Resources.getResourceAsStream(resource);sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputstream);
SqlSession sqlSession =sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=userMapper.findUserById(id);
sqlSession.close();
System.out.println(user);
return user;
}
}
在主函数中:
MapperTestMethod mtm=new MapperTestMethod();建立一个实现类对象
mtm.findUserById(1);只传入参数即可