MyBatis处理动态设置表名
SpecialSQLMapper 接口
public interface SpecialSQLMapper {
/**
* 动态设置表名,查询当前用户信息
* @param tableName
* @return
*/
List<User> getUserList(@Param("tableName") String tableName);
}
MyBatis的映射文件 SpecialSQLMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.mapper.SpecialSQLMapper">
<!--List<User> getUserList(@Param("tableName") String tableName);-->
<select id="getUserList" resultType="User">
select * from ${tableName}
</select>
</mapper>
测试
public class SpecialSQLMapperTest {
@Test
public void testGetUserList(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
SpecialSQLMapper mapper = sqlSession.getMapper(SpecialSQLMapper.class);
List<User> list = mapper.getUserList("t_user");
list.forEach(System.out::println);
}
}