mybatis框架在操作數(shù)據(jù)的時(shí)候,離不開SqlSession接口實(shí)例類的作用??梢哉fSqlSession接口實(shí)例是開發(fā)過程中打交道最多的一個(gè)類。即是DefaultSqlSession類。如果筆者記得沒有錯(cuò)的話,早期是沒有什么getMapper方法的。增刪改查各志有對(duì)應(yīng)的方法進(jìn)行操作。雖然現(xiàn)在改進(jìn)了很多,但是也保留了很多。我們依舊可以看到類似于selectList這樣子的方法。源碼的例子里面就可以找到。如下

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

    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();

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

當(dāng)然從某種意義上來講,寫起有一點(diǎn)煩。但是不可否認(rèn)他的功能的確存在。這也是筆者為什么比較喜歡用動(dòng)態(tài)代理來進(jìn)行數(shù)據(jù)上的操作。至少可觀性上筆者認(rèn)為比較好吧。

不管是哪一種數(shù)據(jù)上的操作都離不開SqlSession接口實(shí)例。所以深入查看qlSession接口實(shí)例就顯得相當(dāng)?shù)闹匾?。筆者選擇了DefaultSqlSession類的selectList方法作為入口點(diǎn)進(jìn)行切入。代碼如下。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 1  public <E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds) { 2