亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

事務管理、AOP總結以及MyBatis高級應用

2019-11-10 19:04:33
字體:
來源:轉載
供稿:網友

一、事務(交易)管理 (1)容器類==集合框架==集合 (2)Web容器==Web服務器==Servlet容器==Servet引擎 (3)傳播 REQUIRED:如果有事務,則參與到當前事務,如果沒有則自動開始新事務,總之,必須有事務。默認最常用規則?。?! PRopagation=Propagation.REQUIRED REQUIRES_NEW:必須有新事務,沒有事務開啟新事務,已經有事務時候,也開啟新的獨立事務。 propagation=Propagation.REQUIRES_NEW NEVER:方法永遠不參與事務 propagation=Propagation.NEVER NOT_SUPPORTED:不支持事務, 如果在事務中調用,把當前事務臨時掛起,執行以后再繼續處理事務。 propagation=Propagation.NOT_SUPPORTED NESTED:嵌套,當前方法不能單獨使用,必須嵌套到其他事務中使用。 propagation=Propagation.NESTED MANDATORY:不支持事務, 不能再事務中調用,如果調用就出現異常 propagation=Propagation.MANDATORY 二、AOP總結 反射->動態代理->AOP->聲明式事務管理 動態代理: (1)JDK 動態代理: java.lang.reflect.Proxy 使用是有前提的,必須有接口?。? (2)CGlib動態代理:基于類的動態代理 注:Spring的AOP動態代理會自動利用 JDK Proxy和CGlib,如果有接口就優先使用JDK Proxy,其他情況下使用CGlib 三、MBatis高級應用 分頁查詢 分頁查詢,其目的在于在查詢結果較多,需要分批向瀏覽器傳輸數據。在查詢結果多時候經常采用。 實現分頁查詢: (1)數據持久層支持分頁查詢功能,主要是才有分頁查詢SQL實現,可以根據數據行范圍,返回一部分查詢結果。 (2)業務層將頁號換算為分頁查詢參數,提交給數據層。 (3)表現層控制器與HTML頁面配合顯示出適當的頁面效果。 案例:分頁查詢筆記本列表 數據層 NotebookDao.java :

/** * 分頁查詢,必須傳遞參數: * userId: 用戶的ID * start: 查詢起始行號 * rows: 一次查詢的最多行數 * @param params 封裝參數的Map * @return List<Map> */List<Map<String, Object>> findNotebooksByPage( Map<String, Object> params);

添加SQL NotebookMapper.java:

<select id="findNotebooksByPage" parameterType="map" resultType="map"> select cn_notebook_id as id, cn_notebook_name as name from cn_notebook where cn_user_id=#{userId} <if test="start != null"> limit #{start}, #{rows} </if></select>

添加業務層方法 NotebookService.java:

List<Map<String, Object>> listNotebooks(String userId, int pageNum, int pageSize) throws UserNotFoundException;

實現業務層方法 NotebookServiceImpl.java

@Transactional(readOnly=true)public List<Map<String, Object>> listNotebooks( String userId, int pageNum, int pageSize) throws UserNotFoundException { if(userId==null||userId.trim().isEmpty()){ throw new UserNotFoundException("ID空"); } User user = userDao.findUserById(userId); if(user==null){ throw new UserNotFoundException("木有人"); } //計算出起始行號 int start = pageNum*pageSize; Map<String, Object> params= new HashMap<String, Object>(); params.put("userId", userId); params.put("start", start); params.put("rows", pageSize); return notebookDao.findNotebooksByPage(params);}

添加控制器方法 NotebookController.java:

@RequestMapping("notebooks.do")@ResponseBodypublic JsonResult<List<Map<String, Object>>> notebooks(String userId, int page){ int size=6; List<Map<String, Object>> list= notebookService.listNotebooks( userId, page, size); return new JsonResult<List<Map<String,Object>>>(list);}

重構 loadNotebooksAction 方法:

function loadNotebooksAction(){ //獲取 page 數據 //$(this)是li.more, 顯示li時候,已經在LI //上綁定了頁號數據,這里是獲取頁號數據 //如果不存在這個數居說明是第一次顯示 //則顯示第0頁的內容 var page=$(this).data('page'); if(! page){ page = 0; } //console.log('loadNotebooksAction()'); //var url='notebook/list.do'; var url='notebook/notebooks.do'; //var data={userId:getCookie('userId')}; var data={userId:getCookie('userId'), page:page}; //console.log(data); //console.log(url); $.getJSON(url, data, function(result){ if(result.state==SUCCESS){ var list=result.data; console.log(list); model.updateNotebooks(list, page); } });}

重構 updateNotebooks 方法:

model.updateNotebooks=function(list, page){ var template='<li class="online notebook">'+ '<a>'+ '<i class="fa fa-book " title="online" rel="toolt重構事件監聽js edit_init.js:

...//綁定點擊筆記本列表的事件//showNotesAction函數定義在edit_note.js中$('#notebooks').on( 'click','li.notebook', showNotesAction);//綁定 More 連接監聽 $('#notebooks').on( 'click','li.more', loadNotebooksAction);...

四、關于全文檢索: (1)數據量非常大:搜索引擎技術,進行全文檢索,如:org.apache.lucene (2)小數據量:可以使用 like 模糊查詢,like是沒有索引支持的順序查詢,性能很差。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久99精品久久久久| 亚洲欧美在线免费观看| 欧美日韩福利在线观看| 在线播放日韩欧美| 亚洲视频在线观看视频| 成人免费淫片aa视频免费| 性色av一区二区三区在线观看| 国产精品久久久久久av福利| 中文字幕亚洲欧美日韩2019| 正在播放亚洲1区| 一区二区三区精品99久久| 欧美日产国产成人免费图片| 国产精品久久久久久一区二区| 欧美日本黄视频| 久久久精品国产| 国产在线高清精品| 国产精品成人免费电影| 人体精品一二三区| 亚洲影院色无极综合| 国产在线观看精品一区二区三区| 成人啪啪免费看| 国产精品嫩草影院久久久| 久久综合国产精品台湾中文娱乐网| 日产精品久久久一区二区福利| 青青久久av北条麻妃黑人| 久久这里只有精品视频首页| 精品视频一区在线视频| 欧美成人免费视频| 日韩av网站导航| 91免费版网站入口| 日韩av电影手机在线观看| 精品国产视频在线| 国产精品电影久久久久电影网| 久久久999精品视频| 亚洲人a成www在线影院| 久久男人av资源网站| 亚洲欧美日韩国产中文| 91tv亚洲精品香蕉国产一区7ujn| 午夜精品久久久99热福利| 亚洲精品免费一区二区三区| 日韩人在线观看| 精品动漫一区二区三区| 性欧美办公室18xxxxhd| 日韩视频一区在线| 欧美又大粗又爽又黄大片视频| 亚洲国产成人精品久久| 岛国av一区二区| 国产精品毛片a∨一区二区三区|国| 欧美美最猛性xxxxxx| 国产91在线高潮白浆在线观看| 日韩av电影免费观看高清| 大量国产精品视频| 欧美成人精品不卡视频在线观看| 精品久久久久久久中文字幕| 91精品免费视频| 国产精品久久不能| 热门国产精品亚洲第一区在线| 国产成人精品视| 亚洲欧洲午夜一线一品| 亚洲毛茸茸少妇高潮呻吟| 亚洲人午夜精品| 国产精品久久久久久亚洲调教| www.日韩av.com| 日韩av手机在线看| 国内精品久久久久伊人av| 亚洲一区久久久| 91精品视频在线免费观看| 18久久久久久| 日韩一二三在线视频播| 欧美日韩中文在线| 一区二区三区动漫| 91在线免费观看网站| 国产精品爽爽爽爽爽爽在线观看| 性欧美xxxx交| 成人国产亚洲精品a区天堂华泰| 欧美亚洲视频在线观看| 黑人巨大精品欧美一区二区三区| 国产成人avxxxxx在线看| 精品动漫一区二区| 国产精品高潮呻吟久久av黑人| 精品久久久久久中文字幕大豆网| 欧美日韩福利在线观看| 久久国产精品久久久| 国产精品99蜜臀久久不卡二区| 欧美巨乳美女视频| 精品美女国产在线| 欧美亚洲日本网站| 久久久免费高清电视剧观看| 欧美激情在线播放| 中文字幕精品久久久久| 欧美精品一区三区| 国产精品福利久久久| 色综合伊人色综合网站| 亚洲午夜小视频| 97精品在线观看| 91国偷自产一区二区三区的观看方式| 欧美大肥婆大肥bbbbb| 91亚洲国产成人久久精品网站| 97色在线视频观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲男女自偷自拍图片另类| 91经典在线视频| 91精品国产成人| 欧美性精品220| 欧美高清videos高潮hd| 亚洲成年网站在线观看| 日韩精品极品视频| 国产精品欧美一区二区三区奶水| 欧美色视频日本高清在线观看| 精品亚洲va在线va天堂资源站| 国产亚洲一区二区在线| 国产精品igao视频| 97涩涩爰在线观看亚洲| 亚洲免费影视第一页| 日韩在线视频国产| 91精品啪aⅴ在线观看国产| 日韩激情视频在线| 91精品久久久久久久久久入口| 亚洲区中文字幕| 国产欧美一区二区三区视频| 欧美国产日韩视频| www.久久草.com| 久久久亚洲精品视频| 亚洲精品wwww| 国产日韩综合一区二区性色av| 日韩成人激情在线| 亚洲一区二区三区777| 中文字幕日韩综合av| 亚洲一区二区三区sesese| 日韩在线中文字幕| 欧美精品久久久久久久| 美日韩精品免费观看视频| 亚洲图片欧美日产| 成人日韩在线电影| 96精品久久久久中文字幕| 日韩欧美在线网址| 正在播放国产一区| 九九热99久久久国产盗摄| 欧美丰满少妇xxxx| 久久久亚洲成人| 日本精品视频在线观看| 精品久久久香蕉免费精品视频| 亚洲肉体裸体xxxx137| 精品亚洲va在线va天堂资源站| 欧美日韩久久久久| 97精品免费视频| 亚洲理论在线a中文字幕| 一区二区三区回区在观看免费视频| 国内精品久久影院| 国产精品日韩欧美综合| 国产精品福利观看| 亚洲va欧美va国产综合剧情| 久久手机免费视频| 欧美激情免费在线| 亚洲人成网站777色婷婷| 亚洲成人黄色网| 国产精品永久在线| 国产精品看片资源| 97国产suv精品一区二区62| 国产精品www色诱视频| 在线观看亚洲区| 日韩精品在线播放| 精品无人国产偷自产在线| 久久久成人av|