<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 概念 存在于內存中的臨時數據.減少數據庫交互,提高執行難效率. ## 一級緩存概念 一級緩存默認是開啟的.它指的是MyBatis中SqlSession對象的緩存.當我們執行查詢之后,查詢的結果會同時存入SqlSession到為我們提供的一塊區域中.該區域的結構是一個Map,當我們再次查詢同樣的數據,MyBatis會先去SqlSession查詢是否有,有的話直接拿出來使用.當SqlSession消失時MyBatis的一級緩存也就消失了. ## 實例 ~~~ IUserDao mapper = session.getMapper(IUserDao.class); User user1 = mapper.findById(41); System.out.println(user1); User user2 = mapper.findById(41); System.out.println(user2); ~~~ ``` 2019-04-04 21:00:26,953 0 [ main] DEBUG ache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. 2019-04-04 21:00:27,168 215 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Opening JDBC Connection 2019-04-04 21:00:27,420 467 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1b26f7b2] 2019-04-04 21:00:27,429 476 [ main] DEBUG com.like.dao.IUserDao.findById - ==> Preparing: select * from user where id = ? //只查詢了一次 2019-04-04 21:00:27,473 520 [ main] DEBUG com.like.dao.IUserDao.findById - ==> Parameters: 41(Integer) 2019-04-04 21:00:27,502 549 [ main] DEBUG com.like.dao.IUserDao.findById - <== Total: 1 User{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京', accounts=null} User{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京', accounts=null} 2019-04-04 21:00:27,506 553 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1b26f7b2] 2019-04-04 21:00:27,507 554 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1b26f7b2] ``` ## 關閉session ~~~ SqlSession session1 = build.openSession(); IUserDao mapper1 = session1.getMapper(IUserDao.class); User user1 = mapper1.findById(41); System.out.println(user1); session1.close(); SqlSession session2 = build.openSession(); IUserDao mapper2 = session2.getMapper(IUserDao.class); User user2 = mapper2.findById(41); System.out.println(user2); ~~~ 可以看到查詢了兩次: ``` 2019-04-04 21:02:08,396 0 [ main] DEBUG ache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. 2019-04-04 21:02:08,633 237 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Opening JDBC Connection 2019-04-04 21:02:08,900 504 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@eafc191] 2019-04-04 21:02:08,909 513 [ main] DEBUG com.like.dao.IUserDao.findById - ==> Preparing: select * from user where id = ? 2019-04-04 21:02:08,972 576 [ main] DEBUG com.like.dao.IUserDao.findById - ==> Parameters: 41(Integer) 2019-04-04 21:02:08,999 603 [ main] DEBUG com.like.dao.IUserDao.findById - <== Total: 1 User{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京', accounts=null} 2019-04-04 21:02:09,003 607 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@eafc191] 2019-04-04 21:02:09,004 608 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@eafc191] 2019-04-04 21:02:09,006 610 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Opening JDBC Connection 2019-04-04 21:02:09,019 623 [ main] DEBUG ansaction.jdbc.JdbcTransaction - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@78ac1102] 2019-04-04 21:02:09,020 624 [ main] DEBUG com.like.dao.IUserDao.findById - ==> Preparing: select * from user where id = ? 2019-04-04 21:02:09,021 625 [ main] DEBUG com.like.dao.IUserDao.findById - ==> Parameters: 41(Integer) 2019-04-04 21:02:09,022 626 [ main] DEBUG com.like.dao.IUserDao.findById - <== Total: 1 User{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京', accounts=null} ``` ## 手動清空緩存 ~~~ session.clearCache(); ~~~ ## 觸發清空一級緩存的情況 當調用session的修改,添加,刪除,commit(),close()等方法時,就會清空一級緩存.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看