/** * Route Master slave after sharding. * * @param sqlRouteResult SQL route result * @return route result */ public SQLRouteResult route(final SQLRouteResult sqlRouteResult) { for (MasterSlaveRule each : masterSlaveRules) { route(each, sqlRouteResult); } return sqlRouteResult; }
/** * SQL route. * * @param logicSQL logic SQL * @return route result */ public SQLRouteResult route(final String logicSQL) { SQLStatement sqlStatement = shardingRouter.parse(logicSQL, false); return masterSlaveRouter.route(shardingRouter.route(logicSQL, Collections.emptyList(), sqlStatement)); } }
/** * SQL route. * * <p>First routing time will parse SQL, after second time will reuse first parsed result.</p> * * @param parameters parameters of SQL placeholder * @return route result */ public SQLRouteResult route(final List<Object> parameters) { if (null == sqlStatement) { sqlStatement = shardingRouter.parse(logicSQL, true); } return masterSlaveRouter.route(shardingRouter.route(logicSQL, parameters, sqlStatement)); } }