开发工具:idea2020.3,maven3新建项目
略:
pom.xml配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.4</version>
</dependency>
<!-- mybatis plus 代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
application.yml
server:
port: 8080
servlet:
context-path: /
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/hxzy?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
serialization:
write-dates-as-timestamps: false
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
auto-mapping-behavior: full
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:mapper/**/*Mapper.xml
global-config:
# 逻辑删除配置
db-config:
# 删除前
logic-not-delete-value: 1
# 删除后
logic-delete-value: 0
mybatisplus分页插件MybatisPlusConfig
package com.cloud.mybatisplus_demo.conf;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 配置分页插件
*
*/
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
mybatisplus自动生成代码GeneratorCodeConfig.java
package com.cloud.mybatisplus_demo.gen;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.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.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class gen {
// 创建一个 代码自动生成器对象
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
//1. 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");//获取当前的文件路径
gc.setOutputDir(projectPath + "/src/main/java"); //设置输出文件路径
gc.setAuthor("xt"); //设置作者注解
gc.setOpen(false); //是否打开资源管理器
gc.setFileOverride(false); //是否覆盖原来生成的
gc.setServiceName("%sService"); //去service的I前缀
gc.setIdType(IdType.ID_WORKER); //设置全局的ID生成策略。
gc.setDateType(DateType.ONLY_DATE); //设置全局的时间类型
gc.setSwagger2(false); //设置是否开启swagger
mpg.setGlobalConfig(gc);
//2. 设置数据源,自动生成代码会根据该配置查找数据表
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/hxzy?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
//3. 包的配置
PackageConfig pc = new PackageConfig();
// pc.setModuleName("mybatis"); //设置模块,也就是跟路径下,是否创建一个模块的文件夹,多用于多数据源和库的情况
pc.setParent("com.kuang.mybatis_plus"); //设置跟路径
pc.setEntity("pojo"); //设置实体类的包名
pc.setMapper("mapper"); //设置mapper的包名 xml文件也会在该路径下
pc.setService("service"); //设置service的包名
pc.setController("controller"); //设置controller的包名
mpg.setPackageInfo(pc);
//4. 策略配置
StrategyConfig sc = new StrategyConfig();
sc.setInclude("sys_user"); //设置要映射生成的表名,可以是多个
sc.setNaming(NamingStrategy.underline_to_camel); //设置名称为下划线转大写的驼峰写法
sc.setColumnNaming(NamingStrategy.underline_to_camel); //设置字段的也是驼峰写法
sc.setEntityLombokModel(true); //自动设置lombok注解
sc.setLogicDeleteFieldName("is_delete"); //设置逻辑删除字段名
sc.setVersionFieldName("version"); //设置乐观锁机制
// 设置自动填充字段,例如更新时间、创建时间
/* TableFill createTime = new TableFill("create_time", FieldFill.INSERT);
TableFill updateTime = new TableFill("update_time", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> list = new ArrayList<>();
list.add(createTime);
list.add(updateTime);
sc.setTableFillList(list);*/
sc.setRestControllerStyle(true); //是否开启restful风格的controller
sc.setControllerMappingHyphenStyle(true); //是否开启下划线的URL
mpg.setStrategy(sc);
mpg.execute(); //执行生成
}
}
添加扫描mapper注解
package com.cloud.mybatisplus_demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
@MapperScan("com.cloud.mybatisplus_demo.mapper") //扫包
public class MybatisplusDemoApplication {
@GetMapping("/")
public String welcome(){
return "hello world";
}
public static void main(String[] args) {
SpringApplication.run(MybatisplusDemoApplication.class, args);
}
}
在resources目录下新建mapper文件夹,新建UserMapper.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.cloud.mybatisplus_demo.mapper.UserMapper">
<!-- 查找用户信息 -->
<select id="findAllUser" resultType="com.cloud.mybatisplus_demo.bean.SysUser">
select * from sys_user
</select>
</mapper>
SysUser.java
package com.cloud.mybatisplus_demo.bean;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.io.Serializable;
/**
* @Author zhaox
* @Date 22/4/1
*/
@Data
@TableName("sys_user")
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
// @TableId(value = "id", type = IdType.ID_WORKER)
/**
* 雪花算法 生成数字类型的全局唯一id
* 用途:分布式架构里 分库分表;类似uuid
* 条件1:IdType.ID_WORKER
* 条件2:主键参数必须为 long
* @TableId(value = "id", type = IdType.ID_WORKER)
*
*
*/
/**
* 主键自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String username;
private String password;
/**
* 头像
*/
private String icon;
/**
* 邮箱
*/
private String email;
/**
* 昵称
*/
@TableField("nick_name")
private String nickName;
/**
* 备注信息
*/
private String note;
}
UserMapper.java
package com.cloud.mybatisplus_demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cloud.mybatisplus_demo.bean.SysUser;
import java.util.List;
public interface UserMapper extends BaseMapper<SysUser> {
public List<SysUser> findAllUser();
}
定义接口IServices
package com.cloud.mybatisplus_demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.mybatisplus_demo.bean.SysUser;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface IUserService extends IService<SysUser> {
List<SysUser> findAllUser();
}
UserServiceImpl
package com.cloud.mybatisplus_demo.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.mybatisplus_demo.bean.SysUser;
import com.cloud.mybatisplus_demo.mapper.UserMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, SysUser> implements IUserService {
@Resource
private UserMapper userMapper;
@Override
public List<SysUser> findAllUser() {
return userMapper.findAllUser();
}
}
在Controller类新增restfull接口 测试
@Resource
private IUserService userService;@GetMapping("/getUser")
public SysUser getUser(){
return userService.getById(2);
}
UserController.java
package com.cloud.mybatisplus_demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.mybatisplus_demo.bean.SysUser;
import com.cloud.mybatisplus_demo.service.IUserService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author zhaox
* @Date 22/4/1
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private IUserService userService;
@GetMapping("/getUser")
public SysUser getUser(){
return userService.getById(2);
}
/**
* 分页例子
* @return
*/
@GetMapping("/list")
public Object getList(){
QueryWrapper qw = new QueryWrapper<>(null);
Page ps = new Page<SysUser>(1, 5);
IPage<SysUser> u = userService.page(ps,qw);
return u;
}
@GetMapping("/findAllUser")
public List<SysUser> findAllUser(){
return userService.findAllUser();
}
}
postMan测试上面是mybatisplus测试成功,
版权声明:本文为xiatianit原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。