Mybatis-plus簡單配置及應用,mybatis-plus配置

來源:互聯網
上載者:User

Mybatis-plus簡單配置及應用,mybatis-plus配置

mybatis-plus是由中國大神寫的mybatis增強版,可以自動產生代碼。
配置過程比較簡單。首先引入兩個maven依賴

    <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus</artifactId>            <version>2.0.6</version>        </dependency>        <dependency>            <groupId>org.apache.velocity</groupId>            <artifactId>velocity</artifactId>            <version>1.7</version>        </dependency>

一個是mybatis-plus,另一個是它自動成成代碼所依賴的模板引擎velocity。
然後將mybatis的sqlSeassionFactoryBean替換成plus增強版的,外掛程式可以選擇性配置

    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property value="classpath:/mybatis-config.xml" name="configLocation" />        <!-- 自動掃描mapping.xml檔案 -->        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>        <!-- MP 全域配置注入 -->        <property name="globalConfig" ref="globalConfig" />        <!-- 外掛程式配置 -->        <property name="plugins">            <array>                <bean class="com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor" />            </array>        </property>    </bean>

mybatis-plus全域配置,主要是配置id建置原則,依賴資料庫類型,

<bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">        <!-- 主鍵策略配置 -->        <!-- 選擇性參數 AUTO->`0`("資料庫ID自增") INPUT->`1`(使用者輸入ID") ID_WORKER->`2`("全域唯一ID")             UUID->`3`("全域唯一ID") -->        <property name="idType" value="2" />        <!-- 資料庫類型配置 -->        <property name="dbType" value="mysql" />        <!-- 全域表為底線命名設定 true -->        <property name="dbColumnUnderline" value="true" />    </bean>

產生代碼

public class MpGenerator {    /**     * <p>     * MySQL 產生示範     * </p>     */    public static void main(String[] args) {        AutoGenerator mpg = new AutoGenerator();        // 全域配置\\Begin\\src\\main\\java        GlobalConfig gc = new GlobalConfig();        gc.setOutputDir("G:\\workspace");        gc.setFileOverride(true);        gc.setActiveRecord(true);        gc.setEnableCache(false);// XML 二級緩衝        gc.setBaseResultMap(true);// XML ResultMap        gc.setBaseColumnList(true);// XML columList        gc.setOpen(false);        gc.setAuthor("XuWei");        // 自訂檔案命名,注意 %s 會自動填滿表實體屬性!        gc.setMapperName("%sDao");        gc.setXmlName("%sMapper");        gc.setServiceName("%sService");        gc.setServiceImplName("%sServiceImpl");        gc.setControllerName("%sController");        mpg.setGlobalConfig(gc);        // 資料來源配置        DataSourceConfig dsc = new DataSourceConfig();        dsc.setDbType(DbType.MYSQL);        dsc.setDriverName("com.mysql.jdbc.Driver");        dsc.setUrl("jdbc:mysql://localhost:3306/begin?useUnicode=true&amp;characterEncoding=UTF-8&amp;generateSimpleParameterMetadata=true");        dsc.setUsername("root");        dsc.setPassword("123");        mpg.setDataSource(dsc);        // 策略配置        StrategyConfig strategy = new StrategyConfig();        // strategy.setCapitalMode(true);// 全域大寫命名 ORACLE 注意        strategy.setTablePrefix(new String[] { "t_", "tsys_" });// 此處可以修改為您的表首碼        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名建置原則        strategy.setInclude(new String[] { "dept" }); // 需要產生的表        // strategy.setExclude(new String[]{"test"}); // 排除產生的表        mpg.setStrategy(strategy);        //預設是service、serviceImpl、controller都產生。在這裡關閉他們        TemplateConfig tc = new TemplateConfig();        tc.setController(null);        mpg.setTemplate(tc);        // 組建檔案路徑//      PackageConfig pc = new PackageConfig();//      pc.setParent("com.xu");//      pc.setEntity("entity.plus");//      pc.setMapper("dao.plus");//      pc.setXml("mapper.plus");//      pc.setService("service.plus");//      pc.setServiceImpl("service.plus.impl");//      mpg.setPackageInfo(pc);        // 執行產生        mpg.execute();    }

這樣代碼產生到G:\workspace目錄下面
和mybayis generator相比plus產生的程式碼對應檔xml,和dao層更加乾淨,通用的CRUD都通過dao類繼承的BaseMapper來實現。
但是缺點也很明顯,條件構造器不能像generator那樣直接將表中的欄位名稱和pojo映射,所以需要自己寫查詢條件對應的欄位名稱。
如果要拼接這樣一個查詢條件( user_name = ? and password = ? ) or( id = ? and state = ? )
mybatis-plus條件構造

        EntityWrapper<User> ew = new EntityWrapper<>();        ew.eq("user_name", "向問天").eq("password", "sde");        ew.orNew("id", 3).eq("state", 2);

mybatis generator條件構造

        UserExample userExample = new UserExample();        userExample.createCriteria()        .andUserNameEqualTo("向問天")        .andPasswordEqualTo("sde");        userExample.or()        .andIdEqualTo(3)        .andStateEqualTo(2);        userExample.isDistinct();
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

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.