导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.2.4</version>
</dependency>
配置yml文件
server:
port: 8093
spring:
datasource:
username: xxxxxx
password: xxxx
url: jdbc:mysql://192.168.6.158:3806/sequencing_manage?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
#使得实体类的字段变成驼峰
map-underscore-to-camel-case: true
#控制台输出每一句的sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
MPX
安装插件
idea右侧database点击添加mysql,参数如下
添加成功后可以看到数据库参数
右键表,自动生成代码
输入参数
结束后目录文件夹结构如下
重启就可构建完毕
生成后需要在mapper文件中添加注解
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函数速查
MybatisX快速创建curd语句
输入
insertSelective
然后ALT+ENTER 选择此项
MyBatisPlus多表联查
导入包 mybatis-plus-join
<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)
);
去重查询
字段用“”标起来
QueryWrapper<DataResult> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT filename","update_time")
.like("filename",filename)
.orderByAsc("update_time");