Como posso criar um spinner de forma dinâmica?

Estou desenvolvendo um aplicativo que é necessário a criação de componentes spinner de forma dinâmica. Faço dessa forma porque pode não ter nenhum, como pode ter vários; e também quero deixar esta autonomia ao usuário. Bem, através de algumas buscas na internet eu achei isto:

public void criarSpinner(){
    Spinner spinnerTeste;
    spinnerTeste = new Spinner(this);
    RelativeLayout rl = (RelativeLayout) findViewById(R.id.layoutuhul);
    rl.addView(spinnerTeste);
}

Aparentemente ele cria corretamente, porém eu tenho que buscar dados no banco de dados e exibi-los. Logo para realizar isto eu precisarei manipular cada componente criado.

Como posso fazer tudo isto funcionar?
Peço desculpas se houver outro tópico semelhante a este.