Mybatis Plus

添加依赖:

        <!--使用mybatisplus代码生成器   自己加spring boot依赖工具包哦-->
        <dependency>
            <artifactId>velocity</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>commons-collections</artifactId>
                    <groupId>commons-collections</groupId>
                </exclusion>
            </exclusions>
            <groupId>org.apache.velocity</groupId>
            <version>1.7</version>
        </dependency>
        <!--导入mybatis plus依赖包-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>2.1.9</version>
        </dependency>

自定义生成模板引擎:


package com.aaa.util;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.Collections;

/**
* @Author: cws
* @Date: 2020/7/9 0009 15:10
* @Version 1.0
* 使用mybatisplus自动生成代码
*/
public class MyGenerator {
public static void main(String[] args) {

// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
//输出目录
globalConfig.setOutputDir("D://生成代码//");
// 是否覆盖文件
globalConfig.setFileOverride(true);
// 开启 activeRecord 模式
globalConfig.setActiveRecord(true);
// XML 二级缓存
globalConfig.setEnableCache(false);
// XML ResultMap
globalConfig.setBaseResultMap(true);
// XML columList
globalConfig.setBaseColumnList(true);
//作者
globalConfig.setAuthor("cws");
// 自定义文件命名,注意 %s 会自动填充表实体属性! 例:表名User 则是UserDao
globalConfig.setMapperName("%sDao");
globalConfig.setXmlName("%sDao");
globalConfig.setServiceName("%sService");
globalConfig.setServiceImplName("%sServiceImpl");
globalConfig.setControllerName("%sController");
mpg.setGlobalConfig(globalConfig);
DataSourceConfig sourceConfig = new DataSourceConfig();
// 数据库类型
sourceConfig.setDbType(DbType.MYSQL);
sourceConfig.setTypeConvert(new MySqlTypeConvert() {
// 自定义数据库表字段类型转换【可选】
@Override
public DbColumnType processTypeConvert(String fieldType) {
System.out.println("转换类型:" + fieldType);
return super.processTypeConvert(fieldType);
}
});
//根据自己的需要改成自己的数据库类型
sourceConfig.setDriverName("com.mysql.jdbc.Driver");
sourceConfig.setUsername("root");
sourceConfig.setPassword("123456");
sourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/szqy08project?characterEncoding=utf8");
mpg.setDataSource(sourceConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
// .setCapitalMode(true)// 全局大写命名
// 此处可以修改为您的表前缀 例:实体tbl_user变成User
strategyConfig.setTablePrefix(new String[]{"tbl_"});
// 表名生成策略 生成小驼峰
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
mpg.setStrategy(strategyConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
// 自定义包路径
packageConfig.setParent("com.aaa");
// 这里是控制器包名,默认 web
packageConfig.setController("controller");
packageConfig.setMapper("dao");
packageConfig.setEntity("entity");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
mpg.setPackageInfo(packageConfig);
// 注入配置 可配可不配 mapper路径的问题
InjectionConfig injectionConfig = new InjectionConfig() {
@Override
public void initMap() {
}
};
injectionConfig.setFileOutConfigList(Collections.<FileOutConfig>singletonList(new FileOutConfig("/templates/mapper.xml.vm") {
// 自定义输出文件目录
@Override
public String outputFile(TableInfo tableInfo) {
return globalConfig.getOutputDir() + tableInfo.getEntityName() + "Dao.xml";
}
}));
mpg.setCfg(injectionConfig);
// 执行生成*/
mpg.execute();
}
}
 

主启动类:

package com.aaa;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages = "com.aaa.dao")   //扫描dao包
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

 测试类:

package com.aaa;

import com.aaa.entity.Dept;
import com.aaa.service.DeptService;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class Szqy08PsmsApplicationTests {
    @Autowired
    private DeptService deptService;

    @Test
    void saveDept() {
        Dept dept = new Dept();
        dept.setDeptName("学术部");
        deptService.insert(dept);
    }
    @Test
    void deleteDept() {
       /* Dept dept = new Dept();
        dept.setDeptName("学术部");*/
       //按照条件删除
      /*  Wrapper<Dept> wrapper= new EntityWrapper<>();
        wrapper.eq("dept_name","学术部");
        deptService.delete(wrapper);*/
        //按照主键批量删除boolean deleteBatchIds(Collection<? extends Serializable> var1);
/*        List<Integer> ids= new ArrayList<>();
        ids.add(108);
        ids.add(109);
        deptService.deleteBatchIds(ids);*/
        //安装主键单个删除
       deptService.deleteById(110);

    }

    @Test
    void updateDept() {
        Dept dept = new Dept();
        dept.setDeptId(111);
        dept.setDeptName("军机处");
        deptService.updateById(dept);
    }

    /**
     * 测试排序
     */
    @Test
    void OrderDept() {
        Wrapper<Dept> wrapper= new EntityWrapper<>();
        wrapper.orderBy("order_num",false);
        List<Dept> deptList = deptService.selectList(wrapper);
        for (Dept dept : deptList) {
            System.out.println(dept.toString());
        }
    }
    /**
     * 测试模糊查询
     */
    @Test
    void likeDept() {
        Wrapper<Dept> wrapper= new EntityWrapper<>();
        wrapper.like("dept_name","市场");
        List<Dept> deptList = deptService.selectList(wrapper);
        for (Dept dept : deptList) {
            System.out.println(dept.toString());
        }
    }
    /**
     * 分页查询
     */
    @Test
    void pageDept() {
        /**
         *     public Page(int current, int size) {
         *         super(current, size);
         *         current 当前第几页
         *         size是一页显示多少行
         *         this.records = Collections.emptyList();
         *     }
         */
        Page<Dept> page = new Page(2,3);
        Page<Dept> deptPage = deptService.selectPage(page);
        //从分页结果中提取list集合
        List<Dept> deptList = deptPage.getRecords();
        for (Dept dept : deptList) {
            System.out.println(dept.toString());
        }
    }
}

 

posted @ 2020-08-16 01:24  白描先生  阅读(374)  评论(0编辑  收藏  举报
}); });