读了一些代码,代码的心智模型很重要 -> 结构决定算法。
1. 一个代码片段
/**
* 执行任意的sql mapper
*/
@Select("${sql}")
@Options(fetchSize = 500,timeout = 100)
List<Object> querySQL(String sql, @Param("param") Map<String, Object> param);
从这个一个代码片段,mybatis到底需要做哪些事情?
2. Mybatis模型
从这个初略的模型,我们可以来提出几个问题:1. 上面的例子中,如何转换成一个MappedStatement?他们SqlSource、Parameter和Result是如何确定,以及各自的作用? 2. MappedStatement是怎么被管理的?在querySQL被调用的时候,做了哪些事情? 3. 核心以来了Java的那些基础能力?