mybatis框架在操作数据的时候,离不开SqlSession接口实例类的作用。可以说SqlSession接口实例是开发过程中打交道最多的一个类。即是DefaultSqlSession类。如果笔者记得没有错的话,早期是没有什么getMapper方法的。增删改查各志有对应的方法进行操作。虽然现在改进了很多,但是也保留了很多。我们依旧可以看到类似于selectList这样子的方法。源码的例子里面就可以找到。如下
SqlSession session = sqlMapper.openSession(TransactionIsolationLevel.SERIALIZABLE); try {
List<Author> authors = session.selectList("org.apache.ibatis.domain.blog.mappers.AuthorMapper.selectAllAuthors");
assertEquals(2, authors.size());
} finally {
session.close();当然从某种意义上来讲,写起有一点烦。但是不可否认他的功能的确存在。这也是笔者为什么比较喜欢用动态代理来进行数据上的操作。至少可观性上笔者认为比较好吧。
不管是哪一种数据上的操作都离不开SqlSession接口实例。所以深入查看qlSession接口实例就显得相当的重要。笔者选择了DefaultSqlSession类的selectList方法作为入口点进行切入。代码如下。
1 public <E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds) { 2


