基本配置

首先新建一个springboot项目,然后导入数据库驱动,lombok和mybatis-plus依赖:

<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- mybatis-plus -->
<!-- mybatis-plus 是自己开发,并非官方的! -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>

然后再编写配置文件application.yml:

server:
port: 8081 spring:
datasource:
username: ******
password: ******
url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver # 配置日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

即配置数据源连接数据库的参数(用户名密码url等)

这里使用的是一个新建的数据库,通过Mybatis-Plus文档的操作新建user表:

最后在启动类或者是配置类中加入@MapperScan注解:

@MapperScan("com.example.mapper") <---
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

简单使用

我们先编写user表对应的实体类:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}

然后编写对应的Mapper接口:

public interface UserMapper extends BaseMapper<User> {
}

然后即可在测试类中进行测试:

@SpringBootTest
public class UserTest { @Autowired
private UserMapper userMapper; @Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
userList.forEach(System.out::println);
}
}

运行结果:

User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)

代码生成器

导入依赖

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>

生成器代码:

@SpringBootTest
public class CodeGenerator {
@Test
public void generate() {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator(); // 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
//System.out.println(projectPath);
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("Zeng");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
/*
* mp生成service层代码,默认接口名称第一个字母有 I
* UcenterService
* */
gc.setServiceName("%sService"); //去掉Service接口的首字母I
gc.setIdType(IdType.ID_WORKER_STR); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式,如果开启则也代表着需要导入swagger的配置 mpg.setGlobalConfig(gc); // 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?serverTimeZone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc); // 4、包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("example"); //模块名
pc.setParent("com");
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc); // 5、策略配置
StrategyConfig strategy = new StrategyConfig();
// 设置要映射的表名
strategy.setInclude("user");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀 strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作 strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符 mpg.setStrategy(strategy); // 6、执行
mpg.execute();
}
}

运行结果:

另外swagger2的配置:

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>

查看生成的User实体类:

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="User对象", description="")
public class User implements Serializable { private static final long serialVersionUID=1L; @ApiModelProperty(value = "主键ID")
@TableId(value = "id", type = IdType.ID_WORKER_STR)
private Long id; @ApiModelProperty(value = "姓名")
private String name; @ApiModelProperty(value = "年龄")
private Integer age; @ApiModelProperty(value = "邮箱")
private String email;
}

进行相应的查询测试:

// 测试代码
@RestController
@RequestMapping("/example/user")
public class UserController { @Autowired
private UserService userService; @RequestMapping("/{id}")
public User getUserById(@PathVariable int id) {
User user = userService.getById(id);
return user;
}
}

测试结果:


最新文章

  1. wireshark使用方法总结
  2. 观 GT Java语言管理系统的感悟
  3. IL指令大全(转)
  4. strong reference cycle in block
  5. Xcode编译错误集锦
  6. windows SVN搭建
  7. rsyslog日志服务的配置文件分析
  8. ListView 长按拖动会变黑的解决方案
  9. (转载)PHP 提示和技巧
  10. C/C++指针和数组的关系
  11. 团队作业4——第一次项目冲刺(Alpha版本)4th day
  12. vue + ts @Prop boolean 问题
  13. ABP问题速查表
  14. shell模板-跨目录执行,彩色输出,临时文件,行遍历文件
  15. 装Office时,安装程序找不到Office.zh-cn\OfficeMUI问题
  16. 01 Hello World!
  17. zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)
  18. FM的推导原理--推荐系统
  19. 【Nodejs】使用put方式向后端查询数据并在页面显示
  20. Along with all the above benefits, you cannot overlook the space efficiency and performance gains in using DataFrames and Dataset APIs for two reasons.

热门文章

  1. Spring Boot下的一种导出CSV文件的代码框架
  2. GitHub Desktop的使用,创建项目、上传文件,设置忽略文件
  3. PDO之MySql持久化自动重连导致内存溢出
  4. mysql过滤表中重复数据,查询相同数据的特定一条
  5. GKCTF X DASCTF 2021_babycat复现学习
  6. VUE+ElementUI实现左侧为树形结构、右侧无层级结构的穿梭框
  7. 高校表白App-团队冲刺第六天
  8. win10实现倒计时锁屏,休眠
  9. .net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
  10. 在使用TCP协议进行消息发送时,对消息分帧