@Data @ApiModel(value = "项目管理") public class BisProjectVO { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "项目名称") private String projectName; } 根据id查询项目名称,用mybatis-plus写,不要写mapper和sql
时间: 2023-12-14 07:36:10 浏览: 34
可以使用 Mybatis-Plus 提供的便捷方法 `selectById`,代码如下:
```
@Service
public class BisProjectService extends ServiceImpl<BisProjectMapper, BisProjectVO> {
public String getProjectNameById(Integer id){
BisProjectVO bisProjectVO = this.baseMapper.selectById(id);
return bisProjectVO == null ? null : bisProjectVO.getProjectName();
}
}
```
其中,`BisProjectMapper` 是继承了 Mybatis-Plus 的 `BaseMapper` 的自定义 Mapper 接口。`this.baseMapper.selectById(id)` 就是使用 Mybatis-Plus 提供的 `selectById` 方法查询 id 对应的项目记录,并将结果封装成 `BisProjectVO` 对象返回。最后,返回 `BisProjectVO` 对象中的项目名称属性即可。
相关问题
@Data @ApiModel(value = "塔站") public class BisTowerVO { private Integer id; private Integer projectId; private String towerNo; } @Data @ApiModel(value = "项目管理") public class BisProjectVO { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "项目名称") private String projectName; } 这是两个VO类,BisTower类的projectId关联BisProject类的id,帮我写个查询,只显示towerNo字段的值和projectName 用mybtais-plus写,只写servcie ,不要写mapper和sql
好的,可以参考下面的代码实现:
```java
@Service
public class BisTowerService {
@Autowired
private BisTowerMapper towerMapper;
@Autowired
private BisProjectMapper projectMapper;
public List<Map<String, Object>> listTowerWithProjectName() {
List<BisTower> towerList = towerMapper.selectList(null);
List<Map<String, Object>> resultList = new ArrayList<>();
for (BisTower tower : towerList) {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("towerNo", tower.getTowerNo());
BisProject project = projectMapper.selectById(tower.getProjectId());
resultMap.put("projectName", project == null ? null : project.getProjectName());
resultList.add(resultMap);
}
return resultList;
}
}
```
在这个实现中,我们注入了 BisTowerMapper 和 BisProjectMapper,分别用来查询 BisTower 和 BisProject 对象。在 `listTowerWithProjectName()` 方法中,我们首先查询出所有的 BisTower 对象,然后遍历每个对象,对于每个对象,我们都创建一个 `Map<String, Object>` 对象,将 `towerNo` 和 `projectName` 两个属性加入到这个 Map 对象中,最后将这个 Map 对象加入到结果列表中。在查询 projectName 时,我们利用 BisTower 对象中的 `projectId` 属性,查询出对应的 BisProject 对象,然后从 BisProject 对象中取出 `projectName` 属性的值。需要注意的是,如果查询出来的 BisProject 对象为 null,则说明该 BisTower 对象中的 projectId 属性没有对应的 BisProject 对象,此时 `projectName` 属性的值应该为 null。
这是vo类 @Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO { @ApiModelProperty(value = "逻辑删除 1是 0否") private Integer isDel; } 帮我用mybatis-plus写个逻辑删除
好的,你可以按照以下步骤使用Mybatis-Plus实现逻辑删除:
1. 在实体类中添加逻辑删除字段
```java
@Data
@ApiModel(value = "飞行任务管理-后端列表页vo")
public class BisTaskVO extends PageReqVO {
@ApiModelProperty(value = "逻辑删除 1是 0否")
@TableLogic // 添加逻辑删除注解
private Integer isDel;
}
```
2. 配置Mybatis-Plus逻辑删除插件
```java
@Configuration
@MapperScan("com.example.mapper")
public class MybatisPlusConfig {
// 配置逻辑删除插件
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
// 配置分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
3. 执行逻辑删除操作
```java
@Service
public class BisTaskService {
@Autowired
private BisTaskMapper bisTaskMapper;
public boolean deleteById(Long id) {
int rows = bisTaskMapper.deleteById(id);
return rows > 0;
}
}
```
当执行删除操作时,Mybatis-Plus会自动将逻辑删除字段设置为1,而不是真正从数据库中删除该记录。如果需要查询已删除的记录,可以使用Mybatis-Plus提供的恢复逻辑删除的方法。