mybatis plus 的动态表名的配置
时间: 2023-09-27 08:12:37 浏览: 81
Mybatis Plus 支持在 SQL 中动态指定表名,可以使用 `${}` 占位符实现这个功能。具体实现方式如下:
1. 在 SQL 中使用 `${}` 占位符代替表名,例如:
```sql
SELECT * FROM ${tableName} WHERE id = #{id}
```
2. 在 Mapper 接口中定义一个方法,使用 `@Param` 注解指定参数名称,例如:
```java
public interface UserMapper extends BaseMapper<User> {
List<User> selectByTableName(@Param("tableName") String tableName, @Param("id") Long id);
}
```
3. 在 Service 中调用 Mapper 方法,传入表名参数和其他参数,例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectByTableName(String tableName, Long id) {
return userMapper.selectByTableName(tableName, id);
}
}
```
4. 在调用 Service 方法时,传入表名参数和其他参数,例如:
```java
List<User> userList = userService.selectByTableName("user_2019", 1L);
```
注意:动态表名的功能存在安全隐患,需要谨慎使用,避免 SQL 注入攻击。
阅读全文