MyBatis框架实现(06)执行SQL语句
2019-08-11 本文已影响2人
郭艺宾
书接上回,我们获取了mapper对象,可以开始执行SQL语句了,执行时我们调用的起点是从mapper中的方法开始的,流程如下:
1、调用mapper中的方法
2、mapper代理类调用sqlSession中的方法
3、sqlSession调用执行器的方法
4、执行器执行时,会调用mybatis中的statement处理SQL语句,将参数替换为实际值
5、结果处理器resultHandler对象直接执行,并处理返回的结果
上面是一个简略的流程,虽然简略,但是也能反映mybatis真正的处理流程。下面我们一步一步来实现,首先在sqlSession中定义查询方法:
有了这个方法后,前面动态代理中的方法就可以调用了:
下面要在执行器中创建查询方法让sqlSession调用:
在sqlSession中就可以修改代码调用了:
接下来是处理SQL语句的参数,我们前面定义SQL语句使用了一种简单的字符串替换的方式:
所以这里我们直接使用String类的字符替换就行,下面创建参数处理类:
在参数处理类中,我们获取数据库连接,然后对SQL语句进行预编译和执行,有了参数处理类,前面的执行器就可以完善了:
下一步就是处理结果了,其实到这一步,SQL语句已经执行完了。