依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.19</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.2</version>
</dependency>
<!--redis. 使用SpringBoot默认指定的version-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.11.1</version>
</dependency>
<!--SpringBoot3版本的Swagger-->
<!-- 官方建议是springdoc替代springfox-->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</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>
-
配置:
- 如果你没用Redis,就可以把下面Redis的相关配置删掉。当然保留也不会存在问题
server:
port: 7777
logging:
file:
name: D:/SpringBootLogs/demo.log
level:
root: info
com.atguigu.springbootdemo: info
#redis单个服务器。一个redis默认有16个数据库,这里使用0号数据库,默认,可不写
spring:
data:
redis:
database: 0
host: 192.168.10.177
port: 6379
password: 123aaaa
lettuce:
pool:
max-active: 8
max-wait: 1ms
max-idle: 8
min-idle: 0
#配置数据源
datasource:
#配置数据源类型
type:
#配置连接数据库的信息
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/redistest?characterEncoding=utf-8&useSSL=false
username: root
password: 123tteeeess
#swagger
#配置swagger文档的访问路径,访问地址:http://127.0.0.1:7777/swagger-ui.html
springdoc:
swagger-ui:
path: /swagger-ui.html
#MyBatis-Plus相关配置
mybatis-plus:
configuration:
#配置日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # mybatis-plus自带的
# 开启下划线与驼峰之间的映射
map-underscore-to-camel-case: true # 默认就是true,可不配置
# 配置类型别名所对应的包
type-aliases-package: com.atguigu.mybatisplus1.bean
填写数据库信息并保存
Name就是设置·连接·的名字
Comment就是注释说明
Host就是mysql服务器的ip地址。我用的是自己电脑上的mysql,所以默认localhost
Port就是mysql服务器的端口号,一般都是3306。
User和Password就是登录mysql的用户名和密码。
Database就是你要连接的数据库叫啥。对了,要保证你在mysql中创建了该库
成功后是下面这样子:
MP代码使用示例
@Autowired
LungCancerDrugMapper lungCancerDrugMapper;
@GetMapping("getData")
public JSONObject getData(@RequestParam(defaultValue = "") String drugNameTherapyZh ,
@RequestParam(defaultValue = "0")Integer drugType ){
LambdaQueryWrapper<LungCancerDrug> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotBlank(drugNameTherapyZh),LungCancerDrug::getDrugNameTherapyZh,drugNameTherapyZh)
.eq(LungCancerDrug::getDrugType,drugType)
// .ge(num_Begin!=null,LungCancerDrug::getDrugType,num_Begin)
// .le(num_End!=null,LungCancerDrug::getDrugType,num_End)
;
List<LungCancerDrug> lungCancerDrugList = lungCancerDrugMapper.selectList(queryWrapper);
System.out.println(lungCancerDrugList.toString());
JSONObject jsonObject = new JSONObject();
jsonObject.put("data",lungCancerDrugList);
jsonObject.put("code",200);
return jsonObject;
}
MP函数速查
MyBatisPlus多表联查
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.2.4</version>
</dependency>
Mapper类修改
BaseMapper 改为 MPJBaseMapper
public interface MedicineMapper extends MPJBaseMapper<Medicine> {
}
左连接示例
List<SelectInfoDTO> selectInfoDTOS = medicineMapper.selectJoinList(SelectInfoDTO.class,
new MPJLambdaWrapper<Medicine>()
.selectAll(Medicine.class)
.selectAs(Medicine::getMedicinename, SelectInfoDTO::getName)
.selectAs(MedicineFunc::getVariantid, SelectInfoDTO::getVariantid)
.leftJoin(MedicineFunc.class, MedicineFunc::getMedicinename, Medicine::getMedicinename)
);