记录原因:
公司项目为saas服务,使用的数据库为vertical。随着租户数量的增多,数据库的存储量马上达到1T的限制,但是并没有扩容的打算,而是准备逐步的将数据量大的表迁移至doris数据库,这样现在的项目中的部分sql就需要到doris执行。
对于需要在doris执行的sql,没有采用多数据源的方式,而且创建了一个java项目,然后现有的saas项目调用新项目,新项目访问doris获取数据。
通过sessionFactory获取xml中的sql文
public String getMethodSql(String sqlId, Map<String,Object> mapParam) {
BoundSql boundSql =
sqlSessionFactory
.getConfiguration()
.getMappedStatement(sqlId)
.getBoundSql(mapParam);
// sqlId是mapper文件内SQL的id值, mapParam是传递给动态SQL的参数值
String sql = boundSql.getSql(); // 执行的SQL对象【不包含参数】
return sql;
}