mybatis当我要查询的表不确定的时候,我能不能把表名像参数一样写成#{},如果可以的话,请问要怎么做呢,万分感谢
用${}
例如:
select * from ${tableName} where id = 1
那你可以试一下这种方法
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
/**
* @param executeSql 要执行的sql
* */
private int query(String executeSql) {
int num = 0;
try (SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession();
PreparedStatement preparedStatement = sqlSession.getConnection().prepareStatement(executeSql);
ResultSet resultSet = preparedStatement.executeQuery()) {
if (resultSet.next()){
num = resultSet.getInt(1);
}
} catch (Exception e) {
logger.error("异常 ", e);
}
return num;
}
面试的时候 没人问过你 ${} 和 #{} 的区别吗
用${},把表名当成一个变量传过来就行了