mybatis浅析
SqlSession是Mybatis最重要的构建之一,提供select/insert/update/delete方法,SqlSession的运行主要是依靠Executor执行器调用(调度)StatementHandler、parameterHanlder、ResultSetHandler,Executor首先通过创建StamentHandler执行预编译并设置参数运行。SqlSession重要的四个对象
- Execute:调度执行StatementHandler、ParmmeterHandler、ResultHandler执行相应的SQL语句;
- StatementHandler:使用数据库中Statement(PrepareStatement)执行操作,即底层是封装好了的prepareStatement;
- ParammeterHandler:处理SQL参数;
- ResultHandler:结果集ResultSet封装处理返回。
BoundSql 表示动态生成的SQL语句以及相应的参数信息。SqlSource 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回。
Configuration 对象保存了所有mybatis的配置信息,主要包括:mybatis基础配置文件、 mapper.xml映射器配置文件
执行代码示例:
1、我们使用Mapper进行数据库操作时,调用MapperProxy的invoke()方法,首先判断该接口方法是否有实现类,有则调用,否则执行MapperMethod的execute()方法。
BoundSql表示动态生成的SQL语句以及相应的参数信息,mybatis使用了组合模式实现动态sql的拼接。
此时获得数据库连接
参考: