在 java 通过my batisplus 根据前端传表名和查询条件 后端获取指定表中数据
时间: 2023-06-13 16:09:02 浏览: 177
首先,需要在后端定义一个接口,用于查询指定表中的数据。这个接口可以使用 MyBatis-Plus 的 BaseMapper 接口作为父接口,这样就可以自动继承一些基础的 CRUD 方法。
假设你已经定义好了一个实体类,它对应了数据库中的一张表,可以在这个实体类上添加注解来指定表名。比如:
```java
@TableName("my_table")
public class MyEntity {
// ...
}
```
接下来,定义一个 DAO 接口,用于查询指定表中的数据。这个接口可以继承 BaseMapper 接口,并添加一些自定义的方法,比如根据条件查询数据:
```java
@Mapper
public interface MyDao extends BaseMapper<MyEntity> {
List<MyEntity> selectByCondition(@Param("tableName") String tableName, @Param("condition") Map<String, Object> condition);
}
```
在这个接口中,我们定义了一个 selectByCondition 方法,它接收两个参数:tableName 和 condition。tableName 表示要查询的表名,condition 表示查询条件,它是一个 Map 对象,其中键表示字段名,值表示要查询的值。
在方法中,我们可以使用 MyBatis-Plus 提供的 QueryWrapper 类来构建查询条件,并调用 selectList 方法来执行查询:
```java
@Override
public List<MyEntity> selectByCondition(String tableName, Map<String, Object> condition) {
QueryWrapper<MyEntity> wrapper = new QueryWrapper<>();
wrapper.allEq(condition);
return this.selectList(wrapper);
}
```
最后,在 Controller 中调用 DAO 接口的方法即可:
```java
@RestController
public class MyController {
@Autowired
private MyDao myDao;
@GetMapping("/data")
public List<MyEntity> getData(@RequestParam("tableName") String tableName, @RequestParam Map<String, Object> condition) {
return myDao.selectByCondition(tableName, condition);
}
}
```
这样,就可以根据前端传递的表名和查询条件,查询指定表中的数据了。
阅读全文