利用MyBatis Generator自动创建代码
生活随笔
收集整理的這篇文章主要介紹了
利用MyBatis Generator自动创建代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果你使用過hibernate的eclipse插件自動創建DAO文件,那么就容易理解下面介紹的內容;如果你還沒有用過hibernate也無妨。下面介紹使用mybatis 3的eclipse插件自動生成相關文件以及如何使用這些文件。 eclipse插件安裝地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/ 附件有link安裝包,link安裝方式參考http://maimode.iteye.com/admin/blogs/1164524 MyBatis Generator詳細介紹參見:http://code.google.com/p/mybatis/wiki/Generator 安裝插件的過程就不說了,安裝完后,eclipse中File-》new-》other中會發現多了mybatis選項說明插件安裝成功。 如何使用插件 在任意項目中利用上圖中的向導創建generatorConfig.xml文件(名稱可修改)然后修改文件內容,主要是設置連接數據的相關參數: Xml代碼 ? <?xml version="1.0" encoding="UTF-8" ?> ? <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > ? <generatorConfiguration > ? <context id="context1" > ? <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@192.168.2.21:1521:ORCL" userId="atfm" password="atfm" /> ? <javaModelGenerator targetPackage="com.topsci.atfm.persistence.mybatis.model" targetProject="ATFM" /> ? <sqlMapGenerator targetPackage="com.topsci.atfm.persistence.mybatis.mapper" targetProject="ATFM" ></sqlMapGenerator> ? <javaClientGenerator targetPackage="com.topsci.atfm.persistence.mybatis.client" targetProject="ATFM" type="XMLMAPPER" /> ? <table schema="" tableName="ATFM_ROUTE_CTRL" ></table> ? <table tableName="SYN_TRACK_EST" domainObjectName="AtfmTrack"></table> ? </context> ? </generatorConfiguration> ? Xml代碼 ? <?xml version="1.0" encoding="UTF-8" ?> ? <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > ? <generatorConfiguration > ? <context id="context1" > ? <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@192.168.2.21:1521:ORCL" userId="atfm" password="atfm" /> ? <javaModelGenerator targetPackage="com.topsci.atfm.persistence.mybatis.model" targetProject="ATFM" /> ? <sqlMapGenerator targetPackage="com.topsci.atfm.persistence.mybatis.mapper" targetProject="ATFM" ></sqlMapGenerator> ? <javaClientGenerator targetPackage="com.topsci.atfm.persistence.mybatis.client" targetProject="ATFM" type="XMLMAPPER" /> ? <table schema="" tableName="ATFM_ROUTE_CTRL" ></table> ? <table tableName="SYN_TRACK_EST" domainObjectName="AtfmTrack"></table> ? </context> ? </generatorConfiguration> ? 根據名稱應該能才出來大致的意思。 配置好連接數據庫及表的信息后就可以利用插件自動生成代碼了。 點擊上圖中的選項,如果配置正確,便自動創建相關文件了。 文件主要有三類: client包,mapper 接口文件 model包,實體bean文件 mapper包,mapper xml文件 如何使用這些自動生成的文件 首先需要將mapper包下的xml文件添加到mybatis的sqlmapper文件中 然后程序中這樣使用: Java代碼 ? public List<TrackBean> selectTrackOnRoute(String routeName) { ? List<TrackBean> rt = null; ? SqlSession session = null; ? try { ? session = sqlSessionFactory.openSession(); ? AtfmTrackMapper mapper = session.getMapper(AtfmTrackMapper.class); ? // 構造查詢條件 ? AtfmTrackExample example = new AtfmTrackExample(); ? example.createCriteria() ? .andRouteIs(routeName); ? // 查詢 ? List<AtfmTrack> list = mapper.selectByExample(example); ? // 包裝成TrackBean ? rt = this.toTrackBean(list); ? } catch (Exception e) { ? e.printStackTrace(); ? logger.error(e.getMessage()); ? } finally { ? if (session != null) ? session.close(); ? } ? return rt; ? } ? Java代碼 ? public List<TrackBean> selectTrackOnRoute(String routeName) { ? List<TrackBean> rt = null; ? SqlSession session = null; ? try { ? session = sqlSessionFactory.openSession(); ? AtfmTrackMapper mapper = session.getMapper(AtfmTrackMapper.class); ? // 構造查詢條件 ? AtfmTrackExample example = new AtfmTrackExample(); ? example.createCriteria() ? .andRouteIs(routeName); ? // 查詢 ? List<AtfmTrack> list = mapper.selectByExample(example); ? // 包裝成TrackBean ? rt = this.toTrackBean(list); ? } catch (Exception e) { ? e.printStackTrace(); ? logger.error(e.getMessage()); ? } finally { ? if (session != null) ? session.close(); ? } ? return rt; ? } ? 如果where條件比較復雜,還可以自定義查詢條件,如上例中andRouteIs(routeName)就是自定義的查詢條件。可以在 具體的Example的內部類Criteria中自定義查詢條件: Java代碼 ? public Criteria andRouteIs(String routeName){ ? StringBuffer sb = new StringBuffer("point_name in " + ? "(select p.point from route_point p where p.route = '" + routeName + "') " + ? "AND FLIGHT_NO IN " + ? "(select D.FLIGHT_NO from syn_aftn_dynamic_recent d " + ? "where d.route like '%" + routeName + "%')"); ? addCriterion(sb.toString()); ? return this; ? } ? Java代碼 ? public Criteria andRouteIs(String routeName){ ? StringBuffer sb = new StringBuffer("point_name in " + ? "(select p.point from route_point p where p.route = '" + routeName + "') " + ? "AND FLIGHT_NO IN " + ? "(select D.FLIGHT_NO from syn_aftn_dynamic_recent d " + ? "where d.route like '%" + routeName + "%')"); ? addCriterion(sb.toString()); ? return this; ? } ? 我們可能會擔心一旦重新執行generate的時候,我們自己編寫的代碼會不會丟失,不會的,插件不會修改或丟棄我們自己編寫的代碼。 一旦掌握了插件如何使用,重要的工作就是如何使用XXXExample類了。這種方式,完全不用編寫繁瑣的mapper xml文件。 MyBatis_Generator_1.3.1.zip (2.2 MB) 下載次數: 1098
總結
以上是生活随笔為你收集整理的利用MyBatis Generator自动创建代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python文件上传功能简单实现
- 下一篇: 使用PDO总结