コード例 #1
0
  /**
   * 获取分库分表选择的表名
   *
   * @param datasourceSchema
   * @param tableNameBean
   * @param databsename
   * @return
   */
  public TableBean getShardTableName(
      DatasourceSchema datasourceSchema, TableNameBean tableNameBean, String databsename) {
    Map<String, List<TableSchema>> maps = datasourceSchema.collectDataBaseMappingTablename();
    List<TableSchema> tableSchemas = maps.get(databsename);
    TableSchema result = new TableSchema();
    for (TableSchema tableSchema : tableSchemas) {
      if (tableSchema.getTablefield().equals(tableNameBean.getTablefield())) {
        result = tableSchema;
        break;
      }
    }

    List<TableBean> tableBeans = new ArrayList<TableBean>();
    for (int i = 0; i < result.getCount(); i++) {
      TableBean tableBean = new TableBean();
      tableBean.setName(result.getTablename());
      tableBean.setPrefixname(result.getPrefixname() + i);
      tableBeans.add(tableBean);
    }

    return loadBalance.select(tableBeans, tableNameBean.getTablefieldvalue());
  }