class BaseDaoImpl implements Dao<T, ID> {

	static <T, ID> Dao<T, ID> createDao(ConnectionSource connectionSource, Class<T> clazz) throws SQLException {
		return new BaseDaoImpl<T, ID>(connectionSource, clazz) {
		};
	}

	protected  BaseDaoImpl(Class<T> dataClass);
	protected  BaseDaoImpl(ConnectionSource connectionSource, Class<T> dataClass);
	protected  BaseDaoImpl(ConnectionSource connectionSource, DatabaseTableConfig<T> tableConfig);
	private  BaseDaoImpl(ConnectionSource connectionSource, Class<T> dataClass, DatabaseTableConfig<T> tableConfig);

}