首先导入我们的Spring boot的起步依赖~
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.bdqn</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<!--首先导入Mybatis Plus的起步依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 这里要注意一下 我导入的是Mysql 8.0以上的驱动版本
- 数据库驱动 : com.mysql.cj.jdbc.Driver 不是之前的
com.mysql.jdbc.Driver - url: jdbc:mysql:///smbms?serverTimezone=GMT%2B8&characterEncoding=utf8(如果不添加,启动会报错)
spring.datasource.username=root
spring.datasource.password=ok
spring.datasource.url=jdbc:mysql:///smbms?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
使用mybatis plus 代码生成器 不会的小伙伴可以去参考MP官网的官方文档(我使用的是MP默认的模板 velocity 也可以选择 FreeMark 任选其一)
package com.bdqn.springboot.utils;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* @author qhstart
* @DATE 2018-12 14:11
*/
public class GeneratorMp {
public static void main(String[] args) {
String dir = System.getProperty("user.dir")+"\\src\\main\\java";
GlobalConfig globalConfig = new GlobalConfig();
//设置是否覆盖上一次的文件
globalConfig.setFileOverride(true);
//设置是否支持AR模式
globalConfig.setActiveRecord(true);
//设置生成位置
globalConfig.setOutputDir(dir);
//设置生成作者
globalConfig.setAuthor("qinhan");
//设置主键生成策略
globalConfig.setIdType(IdType.AUTO);
globalConfig.setServiceName("%sService");
//设置通用mapperxml
globalConfig.setBaseResultMap(true);
globalConfig.setBaseColumnList(true);
//数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL).setDriverName("com.mysql.cj.jdbc.Driver").setUrl("jdbc:mysql:///smbms?serverTimezone=GMT%2B8&characterEncoding=utf8")
.setUsername("root").setPassword("ok");
//设置生成配置策略
StrategyConfig stConfig = new StrategyConfig();
//设置生成下划线
stConfig.setDbColumnUnderline(true);
stConfig.setNaming(NamingStrategy.underline_to_camel);
stConfig.setCapitalMode(true);
stConfig.setTablePrefix("smbms_");
stConfig.setInclude("smbms_address","smbms_bill","smbms_provider","smbms_role","smbms_user");
PackageConfig pg =new PackageConfig();
pg.setParent("cn.bdqn.smbms");
pg.setMapper("mapper").setEntity("pojo").setController("controller").
setService("service").setXml("mapperConfig").setServiceImpl("service.impl").setModuleName("module");
AutoGenerator ag = new AutoGenerator();
ag.setPackageInfo(pg);
ag.setDataSource(dsConfig);
ag.setGlobalConfig(globalConfig);
ag.setStrategy(stConfig);
ag.execute();
}
}
生成的实体
package com.bdqn.springboot.pojo;
import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author qinhan
* @since 2018-12-09
*/
@TableName("smbms_address")
public class Address extends Model<Address> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 联系人姓名
*/
private String contact;
/**
* 收货地址明细
*/
@TableField("addressDesc")
private String addressDesc;
/**
* 邮编
*/
@TableField("postCode")
private String postCode;
/**
* 联系人电话
*/
private String tel;
/**
* 创建者
*/
@TableField("createdBy")
private Long createdBy;
/**
* 创建时间
*/
@TableField("creationDate")
private Date creationDate;
/**
* 修改者
*/
@TableField("modifyBy")
private Long modifyBy;
/**
* 修改时间
*/
@TableField("modifyDate")
private Date modifyDate;
/**
* 用户ID
*/
@TableField("userId")
private Long userId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getContact() {
return contact;
}
public void setContact(String contact) {
this.contact = contact;
}
public String getAddressDesc() {
return addressDesc;
}
public void setAddressDesc(String addressDesc) {
this.addressDesc = addressDesc;
}
public String getPostCode() {
return postCode;
}
public void setPostCode(String postCode) {
this.postCode = postCode;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public Long getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Long createdBy) {
this.createdBy = createdBy;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Long getModifyBy() {
return modifyBy;
}
public void setModifyBy(Long modifyBy) {
this.modifyBy = modifyBy;
}
public Date getModifyDate() {
return modifyDate;
}
public void setModifyDate(Date modifyDate) {
this.modifyDate = modifyDate;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
@Override
protected Serializable pkVal() {
return this.id;
}
@Override
public String toString() {
return "Address{" +
"id=" + id +
", contact=" + contact +
", addressDesc=" + addressDesc +
", postCode=" + postCode +
", tel=" + tel +
", createdBy=" + createdBy +
", creationDate=" + creationDate +
", modifyBy=" + modifyBy +
", modifyDate=" + modifyDate +
", userId=" + userId +
"}";
}
}
mapper
package com.bdqn.springboot.mapper;
import com.bdqn.springboot.pojo.Address;
import com.baomidou.mybatisplus.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author qinhan
* @since 2018-12-09
*/
public interface AddressMapper extends BaseMapper<Address> {
}
controller
package com.bdqn.springboot.controller;
import com.bdqn.springboot.pojo.Address;
import com.bdqn.springboot.service.AddressService;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author qinhan
* @since 2018-12-09
*/
@Controller
public class AddressController {
@Autowired
private AddressService addressService;
@RequestMapping("/a")
public String test(Model model){
//现在就可以使用MP为我们提供的强大功能啦~
var addresses = addressService.selectList(null);
System.out.println(addresses);
model.addAttribute("msg",addresses);
return "index";
}
}
下面在模板引擎下创建一个页面就可以访问啦~~
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div th:text="${msg}">
</div>
</body>
</html>

成功查出数据并显示在页面~~

到这里就大公完成啦~
本文介绍如何在SpringBoot项目中集成MyBatisPlus,实现数据库操作自动化,包括配置依赖、代码生成器使用及控制器示例。
1万+

被折叠的 条评论
为什么被折叠?



