MyBatis從前世今生一網打盡(全網最全,建議收藏)5??

      網友投稿 840 2025-03-31

      八、Mybatis 逆向工程

      8.1、逆向工程簡介

      Mybatis Generator: 簡稱 MBG,是一個專門為 MyBatis 框架使用者定制的代碼生成器,可以快速的根據表生成對應的映射文件,接口,以及 bean 類。支持基本的增刪改查,以及 QBC 風格的條件查詢。但是表連接、存儲過程等這些復雜 sql 的定義需要我們手工編寫

      官方文檔地址

      http://www.mybatis.org/generator/

      官方工程地址

      https://github.com/mybatis/generator/releases

      8.2、逆向工程的配置

      導入逆向工程的 jar 包:mybatis-generator-core-1.3.2.jar

      編寫 MBG 的配置文件(重要幾處配置),可參考官方手冊

      編寫java代碼運行

      @Test public void testMBG() throws Exception { List warnings = new ArrayList(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); }

      8.3、逆向工程的使用

      基本查詢的測試

      @Test public void testSelect() throws Exception { SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); List emps = mapper.selectAll(); for (Employee employee : emps) { System.out.println(employee); } } finally { session.close(); } }

      帶條件查詢的測試

      @Test public void testSelect() throws Exception { SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); //條件查詢: 名字中帶有'張' 并且 email中'j' 或者 did = 2 EmployeeExample example = new EmployeeExample(); Criteria criteria = example.createCriteria(); criteria.andLastNameLike("%張%"); criteria.andEmailLike("%j%"); //or Criteria criteriaOr = example.createCriteria(); criteriaOr.andDIdEqualTo(2); example.or(criteriaOr); List emps = mapper.selectByExample(example); for (Employee employee : emps) { System.out.println(employee); } } finally { session.close(); } }

      #九、擴展-PageHelper 分頁插件

      9.1、PageHelper 分頁插件簡介

      PageHelper 是 MyBatis 中非常方便的第三方分頁插件,官方文檔:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

      9.2、PageHelper 的使用步驟

      導入相關包 pagehelper-x.x.x.jar 和 jsqlparser-0.9.5.jar

      在 MyBatis 全局配置文件中配置分頁插件

      使用 PageHelper 提供的方法進行分頁

      可以使用更強大的 PageInfo 封裝返回結果

      9.3、Page 對象的使用

      在查詢之前通過 PageHelper.startPage(頁碼,條數)設置分頁信息,該方法返回 Page 對象

      @Test public void testPageHelper() throws Exception{ SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); //設置分頁信息 Page page = PageHelper.startPage(9, 1); List emps = mapper.getAllEmps(); for (Employee employee : emps) { System.out.println(employee); } System.out.println("=============獲取分頁相關的信息 ================="); System.out.println("當前頁: " + page.getPageNum()); System.out.println("總頁碼: " + page.getPages()); System.out.println("總條數: " + page.getTotal()); System.out.println("每頁顯示的條數: " + page.getPageSize()); } finally { session.close(); } }

      9.4、PageInfo 對象的使用

      在查詢完數據后,使用 PageInfo 對象封裝查詢結果,可以獲取更詳細的分頁信息以及可以完成分頁邏輯

      @Test public void testPageHelper1() throws Exception{ SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); //設置分頁信息 Page page = PageHelper.startPage(9, 1); List emps = mapper.getAllEmps(); // PageInfo info = new PageInfo<>(emps,5); for (Employee employee : emps) { System.out.println(employee); } System.out.println("=============獲取詳細分頁相關的信息 ================="); System.out.println("當前頁: " + info.getPageNum()); System.out.println("總頁碼: " + info.getPages()); System.out.println("總條數: " + info.getTotal()); System.out.println("每頁顯示的條數: " + info.getPageSize()); System.out.println("是否是第一頁: " + info.isIsFirstPage()); System.out.println("是否是最后一頁: " + info.isIsLastPage()); System.out.println("是否有上一頁: " + info.isHasPreviousPage()); System.out.println("是否有下一頁: " + info.isHasNextPage()); System.out.println("============分頁邏輯==============="); int [] nums = info.getNavigatepageNums(); for (int i : nums) { System.out.print(i +" " ); } } finally { session.close(); } }

      十、SSM 框架整合

      10.1、整合注意事項

      查看不同 MyBatis 版本整合 Spring 時使用的適配包;

      下載整合適配包:https://github.com/mybatis/spring/releases

      官方整合示例,jpetstore:https://github.com/mybatis/jpetstore-6

      10.2、整合思路、步驟

      搭建環境

      創建一個動態的 WEB 工程,導入 SSM 需要使用的 jar 包,導入整合適配包,導入其他技術的一些支持包 連接池 數據庫驅動 日志…

      Spring + Springmvc

      在web.xml 中配置: Springmvc 的前端控制器 實例化Spring 容器的- ,字符編碼過濾器 REST 過濾器

      創建 Spring 的配置文件: applicationContext.xml:組件掃描、 連接池、 事務…

      創建 Springmvc 的配置文件: springmvc.xml : 組件掃描、 視圖解析器

      MyBatis

      創建 MyBatis 的全局配置文件

      編寫實體類 Mapper 接口 Mapper 映射文件

      Spring + MyBatis

      MyBatis 的 SqlSession 的創建 .

      MyBatis 的 Mapper 接口的代理實現類

      測試

      10.3、整合的配置

      10.3.1、web.xml

      CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 CharacterEncodingFilter /* HiddenHttpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter HiddenHttpMethodFilter /* contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener springDispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml 1 springDispatcherServlet /

      10.3.2、Spring 配置

      10.3.3 SpringMVC 配置

      MyBatis從前世到今生一網打盡(全網最全,建議收藏)5??

      10.3.4、MyBatis 配置

      全局文件的配置

      SQL 映射文件配置

      Spring 整合 MyBatis 配置

      測試

      MyBatis Spring

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS表格辦公—利用VARP函數計算方差(WPS計算方差)
      下一篇:怎么做表格制作app手機(用手機做表格的app)
      相關文章
      亚洲欧美在线x视频| 亚洲国产成人久久三区| 国产亚洲精品成人AA片| 亚洲∧v久久久无码精品 | 亚洲另类视频在线观看| 久久精品国产亚洲av麻豆色欲 | 亚洲a∨无码一区二区| 亚洲最大福利视频| 亚洲偷偷自拍高清| 亚洲综合无码无在线观看| 亚洲色大成WWW亚洲女子| 亚洲日本成本人观看| 亚洲精品无码久久久久秋霞| 亚洲成av人片在线天堂无| 亚洲精品动漫免费二区| 亚洲大尺度无码无码专线一区| 亚洲成av人无码亚洲成av人| 理论亚洲区美一区二区三区| 亚洲精品成人片在线观看| 亚洲国产aⅴ综合网| 偷自拍亚洲视频在线观看99| 国产亚洲精品免费| 亚洲精品国产福利一二区| 亚洲国产天堂久久久久久| 亚洲一级特黄大片无码毛片 | 亚洲精品无码不卡在线播放HE| 亚洲国产精品特色大片观看完整版| 亚洲日本一区二区三区在线| 国产亚洲av片在线观看播放 | 亚洲午夜福利在线视频| 亚洲aⅴ无码专区在线观看春色| 国产亚洲福利精品一区二区| 丁香五月亚洲综合深深爱| 亚洲动漫精品无码av天堂| 亚洲黄色中文字幕| 中日韩亚洲人成无码网站| 久久精品国产亚洲AV天海翼| 亚洲A丁香五香天堂网| 亚洲日本va中文字幕久久| 91精品国产亚洲爽啪在线观看| 亚洲免费中文字幕|