MybatisPlus学习笔记8:MP逆向工程

摘要:
1.添加依赖项<mybatis加<2.3<&lt,版本>/版本></依赖性>mysql;

MyBatis 的代码生成器基于xml文件进行生成,可生成: 实体类、Mapper 接口、Mapper 映射文件。
MP 的代码生成器基于Java代码进行生成,可生成: 实体类(可以选择是否支持 AR)、Mapper 接口、Mapper 映射文件、 Service 层、Controller 层。

1、添加依赖
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
        </dependency>
        <!-- mp 依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>2.3</version>
        </dependency>
        <!-- mybatisplus逆向工程需要模板引擎,用freemaker也行 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>

上面是必须的三个依赖,
为了可以在控制台直观的看到生成情况,可以添加日志包(slf4j-api和slf4j-log4j2),
为了让生成的代码不会报错,还可以根据情况添加spring相关的依赖、lombok依赖等。

2、代码生成器代码

MybatisPlus学习笔记8:MP逆向工程第1张

/**
 * @author: zhu
 * @date: 2018/8/20 11:17
 * mybatis-plus逆向工程示例代码
 */
public class test {
    @Test
    public void testGenerator(){
        //1、全局配置
        GlobalConfig config = new GlobalConfig();
        config.setActiveRecord(true)//开启AR模式
              .setAuthor("zhu")//设置作者
              //生成路径(一般都是生成在此项目的src/main/java下面)
              .setOutputDir("E:\develop\Java\workspace\ideaworkspace\mpg\src\main\java")
              .setFileOverride(true)//第二次生成会把第一次生成的覆盖掉
              .setIdType(IdType.AUTO)//主键策略
              .setServiceName("%sService")//生成的service接口名字首字母是否为I,这样设置就没有I
              .setBaseResultMap(true)//生成resultMap
              .setBaseColumnList(true);//在xml中生成基础列
        //2、数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL)//数据库类型
                        .setDriverName("com.mysql.jdbc.Driver")
                        .setUrl("jdbc:mysql:///数据库名")
                        .setUsername("数据库用户名")
                        .setPassword("数据库密码");
        //3、策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true)//开启全局大写命名
                      .setDbColumnUnderline(true)//表名字段名使用下划线
                      .setNaming(NamingStrategy.underline_to_camel)//下划线到驼峰的命名方式
                      .setTablePrefix("tb_")//表名前缀
                      .setEntityLombokModel(true)//使用lombok
                      .setInclude("表1","表2");//逆向工程使用的表
        //4、包名策略配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.zhu.mpg")//设置包名的parent
                     .setMapper("mapper")
                     .setService("service")
                     .setController("controller")
                     .setEntity("entity")
                     .setXml("mapper");//设置xml文件的目录
        //5、整合配置
        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(config)
                     .setDataSource(dataSourceConfig)
                     .setStrategy(strategyConfig)
                     .setPackageInfo(packageConfig);
        //6、执行
        autoGenerator.execute();
    }
}

MybatisPlus学习笔记8:MP逆向工程第2张

Employee.java

/**
 * <p>
 * 
 * </p>
 *
 * @author weiyunhui
 * @since 2018-06-21
 */
@TableName("tbl_employee")
public class Employee extends Model<Employee> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String lastName;
    private String email;
    private String gender;
    private Integer age;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "Employee{" +
        ", id=" + id +
        ", lastName=" + lastName +
        ", email=" + email +
        ", gender=" + gender +
        ", age=" + age +
        "}";
    }
}

EmployeeController

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author weiyunhui
 * @since 2018-06-21
 */
@Controller
@RequestMapping("/employee")
public class EmployeeController {
	
	@Autowired
	private EmployeeService employeeService; 
	
//	public String  login() {
//		
//		//employeeService.select
//	}
}
EmployeeMapper.java
package com.atguigu.mp.mapper;

import com.atguigu.mp.beans.Employee;
import com.baomidou.mybatisplus.mapper.BaseMapper;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author weiyunhui
 * @since 2018-06-21
 */
public interface EmployeeMapper extends BaseMapper<Employee> {

}

EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mp.mapper.EmployeeMapper">

    <!-- 开启二级缓存 -->
    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>

    <!-- 通用查询映射结果 -->
    <resultMap   type="com.atguigu.mp.beans.Employee">
        <id column="id" property="id" />
        <result column="last_name" property="lastName" />
        <result column="email" property="email" />
        <result column="gender" property="gender" />
        <result column="age" property="age" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, last_name, email, gender, age
    </sql>

</mapper>

EmployeeService.java
package com.atguigu.mp.service;

import com.atguigu.mp.beans.Employee;
import com.baomidou.mybatisplus.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author weiyunhui
 * @since 2018-06-21
 */
public interface EmployeeService extends IService<Employee> {

}

EmployeeServiceImpl.java
package com.atguigu.mp.service.impl;

import com.atguigu.mp.beans.Employee;
import com.atguigu.mp.mapper.EmployeeMapper;
import com.atguigu.mp.service.EmployeeService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author weiyunhui
 * @since 2018-06-21
 */
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {
	
	//不用再进行mapper的注入.
	
	/**
	 * EmployeeServiceImpl  继承了ServiceImpl
	 * 1. 在ServiceImpl中已经完成Mapper对象的注入,直接在EmployeeServiceImpl中进行使用
	 * 2. 在ServiceImpl中也帮我们提供了常用的CRUD方法, 基本的一些CRUD方法在Service中不需要我们自己定义.
	 * 
	 * 
	 */
}

免责声明:文章转载自《MybatisPlus学习笔记8:MP逆向工程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VBS中解决路径带空格的三种方法解决获得RepositoryItemRadioGroup选择索引问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

express 如何定义生产和开发环境

express 默认是开发环境。 'view cache' 这个属性不会缓存url。 也就是说项目启动后 如果更改views下的目录或路由。 继续访问原先url 就会报错 通过 console.log(process.env.NODE_ENV) 可以验证自己是在什么环境 development(开发)production(生产) 按自己需求替换 1 在代码...

Django——缓存机制

一、缓存介绍 缓存就是将常用的一些数据保存在内存或者们擦车中,在一定时间内,如果有请求访问这些数据的时候,则不用去服务器操作数据库渲染,直接缓存中获取,节约时间,增加访问速度,环节服务器压力 二、Django中的6种缓存方式 开发调试缓存 内存缓存 文件缓存 数据库缓存 Memcache缓存 Memcache缓存 三、Django缓存配置 1.2.1...

SQL模糊查询语句和Escape转义字符

通配符 描述 示例 % 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。 _(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean...

SpringBoot整合Mybatis-Plus报错org.apache.ibatis.binding.BindingException

SpringBoot整合Mybatis-Plus报错org.apache.ibatis.binding.BindingException Mapper接口,被Spring注入后,却无法正常的使用mapper.xml的sql;你的接口已经成功的被扫描到,但是当Spring尝试注入一个代理(MyBatista实现)的实现类后,却无法正常使用。这里的可能发生的情...

正则表达式---用户验证

一:正则表达式:        是一种特殊的字符串模式,用于匹配一组字符串,定义一种规则去匹配一组符合规格的字符; 常用的正则匹配工具       在线匹配工具:   1 http://www.regexpal.com/        2 http://rubular.com/       正则匹配软件       McTracer  正则字符:     ...

无套路,3分钟带你轻松上手SonarQube

前言 想成为一名优秀的工程师,代码质量一定要过关! 开始搭建 SonarQube 1、获取 postgresql 的镜像 $ docker pull postgres 2、启动 postgresql $ docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d...