package com.example.aninbatis.sqlsource;import com.example.aninbatis.utils.GenericTokenParser;import com.example.aninbatis.utils.ParameterMappingTokenHandler;/** * 将DynamicSqlSource和RawSqlSource解析成StaticSqlSource * StaticSqlSource存储的就是只有?的sql语句以及相应的sql信息 */public class SqlSourceParser { public SqlSource parse(String sqlText) { ParameterMappingTokenHandler tokenHandler = new ParameterMappingTokenHandler(); GenericTokenParser tokenParser = new GenericTokenParser("#{", "}", tokenHandler); // tokenParser.parse(sqlText)参数是未处理的,返回值是已处理的(没有${}和#{}) String sql = tokenParser.parse(sqlText); return new StaticSqlSource(sql, tokenHandler.getParameterMappings()); }}