Formatação e separação de Strings, usando java e SQL

Bem galera creio que minha duvida seja simples
eu tenho uma string que vai receber o seguinte valor ex.: “23/07/2011”
gostaria de saber se existe um método pra eu transformar essa data em 3 Strings diferentes ex.: S1 = 23 , S2=07 e S3=2011
para que eu possa juntalas de maneira a cadastrar uma data no banco de dados que possuirá o formato 2011-07-23

Como fazer isso?
Agradeço desde já

Faça isso com substring.
Exemplo :

SUBSTR(tabela.campo,1,40) - neste caso pego da primeira posição até a posição 40.

ou

SELECT SUBSTR(campo,1,40) FROM tabela

Não use esse tipo de manipulação de string para gravar/pesquisar datas no banco.

Utilize PreparedStatement, Date e SimpleDateFormat.

Tem vários exemplos disso aqui no fórum.

Esse tipo de manipulação também funciona, você usa o que achar melhor para obter o resultado que precisa,mas como disse o nosso amigo acima, você também pode usar opções de formatação disponiveis no java.

Segue um link abaixo

  1. Use PreparedStatement para não ter que se preocupar com o formato do banco.
  2. Use a classe SimpleDateFormat para fazer o parte da sua data num objeto Date;
  3. String servem somente para que você trabalhe com texto.

Soh uma duvida se eu usar o PreparedStatement com uma data em formato dd/MM/yyyy , ela vai pro banco com a data certinha(yyyy-mm-dd) ???

a sua data (como tipo Date) possui uma formatação padrão e somente uma String vai te dar a data apresentada da forma que vc quiser, então se vc gravar no banco um tipo Date, automaticamente irá com o padrão de formatação do tipo Date do seu banco (no caso yyyy-mm-dd)

Galera eu usei o seguinte codigo para ter duas datas

CODIGO

GregorianCalendar aluguel = new GregorianCalendar();
GregorianCalendar devolucao = new GregorianCalendar();
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
aluguel.setTime(d);
devolucao.setTime(aluguel.getTime());
devolucao.add(GregorianCalendar.DAY_OF_MONTH,2);
JTFaluguel.setText(sdf.format(aluguel.getTime()).toString());
JTFdevolucao.setText(sdf.format(devolucao.getTime()).toString());

como eu faria no caso para essas duas datas que sao GregorianCalendar se transformarem em tipo DATE , para eu adicionar no banco de dados?

agradecido

Chame o método getTime().