dotNet程式員的Java爬坑之旅(二)

來源:互聯網
上載者:User

標籤:sre   person   log   流程   sources   返回   有用   open   hub   

  囉裡囉唆的寫了一大堆,最後還是全刪除了。哎~

  言歸正傳,最近因爲發生了很多事情,所以更新的有嗲晚了,最近也一直在學習,但是感覺效率什麽的不是很高,這是不對的,反思一下,從這篇博文開始,打起精神吧。

Mybatis批量新增數據:

  批量插入:儅我們有批量插入數據的需求時,比如插入100條數據,傳統的做法是利用for循環100次,但是在這種方式存在嚴重的效率問題,需要頻繁的獲取連接。

  此時比較好的解決辦法就是使用Mybatis支援批量插入的配置和語法。

  需要在數據庫連接字串処設置allowMultiQueries=true

  獲取sqlsessionfactory

public static SqlSessionFactory sqlSessionFactory = null;    public static SqlSessionFactory getSqlSessionFactory() {
        if (sqlSessionFactory == null) {
            String resource = "mybatis-config.xml";
            try {
                Reader reader = Resources.getResourceAsReader(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sqlSessionFactory;
    }  public void testBatchForExecutor()
    {
        SqlSession sqlSession = this.getSqlSessionFactory().openSession( ExecutorType.BATCH);        PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class);        for (int i = 0; i <10000 ; i++)
        {
            personMapper.addPerson(new User("jerry","bj"));
        }        sqlSession.commit();        sqlSession.close();    } Mybatis攔截器實現分頁:  使用PageHelper外掛程式分頁即可,詳細介紹參考pagehelper的github,這裏不再贅述。  但是外掛程式的使用可能會修改底層設計,使用需謹慎  外掛程式式產生的層層代理對象的責任鏈模式,使用反射機制實現  外掛程式的編寫要考慮全面,特便是多個外掛程式層層代理的時候。  還是比較推薦使用傳統的sql語句方式,這方面就比較基礎了,就不多説了。 spring MVC:  springMVC是spring架構的一個後續產品,目前最好的實現MVC設計模式的架構,和spring架構可以很好的結合使用,不需要整合  核心組件:    DispatcherServlet:前置控制器,也是整個SpringMvc架構的核心    HandleMapping:將請求映射到Handler    Handler:後端控制器,完成具體的業務邏輯    HandlerInterceptor:處理器攔截器    HandlerExecutionChain:處理器執行鏈    HandlerAdapter:處理器適配器    ModelAndView:裝載模型數據和視圖資訊    ViewResolver:視圖解析器  實現流程:    1、客戶端請求被DispatcherServlet接收    2、DispatcherServlet將請求映射到Handler    3、產生Handler以及HandlerInterceptor    4、返回HandlerExecutionChain    5、DispatcherServlet通過HandlerAdapter執行Handler    6、返回一個ModelAndView    7、DIspatcherServlet通過ViewResolver進行解析    8、返回填充了模型數據的view,響應給客戶端如圖(網上藉鑒,侵權聯係我刪除):

 

  值得一提的是大部分的組件都由架構提供,開發者只需要通過配置進行關聯即可,需要手動編寫的只有Handler和view。

環境配置:

 

 

 

springMVC 攔截器:

  配置如上:

  Java代碼:

攔截器和過濾器:

(1)過濾器(Filter):當你有一堆東西的時候,你只希望選擇符合你要求的某一些東西。定義這些要求的工具,就是過濾器。

(2)攔截器(Interceptor):在一個流程進行中的時候,你希望幹預它的進展,甚至終止它進行,這是攔截器做的事情。

 具體區別:

(1)攔截器是基於java的反射機制的,而過濾器是基於函數回調。

(2)攔截器不依賴於servlet容器,而過濾器依賴於servlet容器。

(3)攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。

(4)攔截器可以訪問action上下文、值棧裡的對象,而過濾器不能。

(5)在action的生命週期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次。

(6)攔截器可以擷取IOC容器中的各個bean,而過濾器就不行,這點很重要,在攔截器裡注入一個service,可以調用商務邏輯。

摘自:53996873

攔截器功在對請求許可權評鑑方面確實很有用處

dotNet程式員的Java爬坑之旅(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.