Salvar data e hora no BD
Fala galera, eu queria a juda de voces, pois já tentei muito mais não consegui gravar a data e depois a hora no banco de dados, e eu tenho uma Thread para mostrar data e hora do sistema operacional :
e o que eu quero fazer é aproveitar que a data e hora estão sendo exibidas em seus jtextfields pegar eles e gravar no bd postgresql, a data como [b]Date[/b] e a hora como [b]"Time".[/b]
exemplo:
Date data = new Date();
SimpleDateFormat formatData = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatHora = new SimpleDateFormat("HH:mm:ss");
Thread threadRelogio = new Thread() {
public void run() {
mostraRelogio();
}
};
threadRelogio.start();
public void mostraRelogio() {
try {
while (true) {
Date data = new Date();
String hora = formatHora.format(data);
jTextfield1.setText(formatHora.format(data));
jTextfield2.setText(formatData.format(data));
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
}
}
try{
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setString(3, no formato data);
stmt.setString(3, no formato hora);
stmt.executeUpdate();
stmt.close();
}catch(Exception errado){
}Hr
Curtidas 0
Respostas
Éderson Bologna
12/06/2012
Olá você pode gravar como string e pronto. Para usar só converter depois.
Abraços
GOSTEI 0
Hr
12/06/2012
[quote="edersoncassiano"]Olá você pode gravar como string e pronto. Para usar só converter depois.
Abraços
Eu sei que da pra salvar como String, mas eu não posso
try{
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, no formato data);
stmt.setTime(3, no formato hora);
stmt.executeUpdate();
stmt.close();
}catch(Exception errado){
}
GOSTEI 0
Éderson Bologna
12/06/2012
Se "não pode salvar como String", tem que:
1 - determinar qual o tipo da coluna do banco de dados em questão
2 - verificar na documentação do driver JDBC do seu banco qual o tipo do objeto em Java
3 - usar o método correspondente do [color=#008800][b]PreparedStatement[/b][/color]
Eu não uso o postgresql, não deu para testar, mas deve ser algo como:
[size=11][i](não testado - nenhuma IDE foi ferida ou usada durante a produção ou teste desse código)[/i][/size]
Outra possibilidade de obter a data e a hora:
private void inserirData(java.util.Date data) {
java.sql.Date dataSQL = new java.sql.Date(data.getTime()); // converter para java.sql.Date
java.sql.Time horaSQL = new java.sql.Time(data.getTime()); // " Time
try {
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
stmt.executeUpdate();
stmt.close();
} catch(Exception errado) {
errado.printStackTrace(); // se ignorar Exception, não usar printStackTrace, eu não vou mais responder!!!!!!!!
}
}
// data no formato: yyyy-[m]m-[d]d
// hora no formato: hh:mm:ss
private void inserirData(String data, String hora) {
java.sql.Date dataSQL = java.sql.Date.valueOf(data);
java.sql.Time horaSQL = java.sql.Time.valueOf(hora);
...
}
GOSTEI 0
Hr
12/06/2012
[quote="simu"]Se "não pode salvar como String", tem que:
1 - determinar qual o tipo da coluna do banco de dados em questão
2 - verificar na documentação do driver JDBC do seu banco qual o tipo do objeto em Java
3 - usar o método correspondente do [color=#008800][b]PreparedStatement[/b][/color]
Eu não uso o postgresql, não deu para testar, mas deve ser algo como:
[size=11][i](não testado - nenhuma IDE foi ferida ou usada durante a produção ou teste desse código)[/i][/size]
Outra possibilidade de obter a data e a hora:
Cara eu fiz exatamente como voce me sugeriu e nenhum dos dois modos tá cendo aceito, e nessa parte aqui:
private void inserirData(java.util.Date data) {
java.sql.Date dataSQL = new java.sql.Date(data.getTime()); // converter para java.sql.Date
java.sql.Time horaSQL = new java.sql.Time(data.getTime()); // " Time
try {
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
stmt.executeUpdate();
stmt.close();
} catch(Exception errado) {
errado.printStackTrace(); // se ignorar Exception, não usar printStackTrace, eu não vou mais responder!!!!!!!!
}
// data no formato: yyyy-[m]m-[d]d
// hora no formato: hh:mm:ss
private void inserirData(String data, String hora) {
java.sql.Date dataSQL = java.sql.Date.valueOf(data);
java.sql.Time horaSQL = java.sql.Time.valueOf(hora);
...
private void inserirData(java.util.Date data) {
java.sql.Date dataSQL = new java.sql.Date(data.getTime()); // converter para java.sql.Date
java.sql.Time horaSQL = new java.sql.Time(data.getTime()); // " Time
}
try {
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
stmt.executeUpdate();
stmt.close();
} catch(Exception errado) {
errado.printStackTrace(); // se ignorar Exception, não usar printStackTrace, eu não vou mais responder!!!!!!!!
}
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
// data no formato: yyyy-[m]m-[d]d
// hora no formato: hh:mm:ss
private void inserirData(String data, String hora) {
java.sql.Date dataSQL = java.sql.Date.valueOf(data);
java.sql.Time horaSQL = java.sql.Time.valueOf(hora); try {
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
stmt.executeUpdate();
stmt.close();
} catch(Exception errado) {
errado.printStackTrace();
} private void inserirData(String data, String hora) {
java.sql.Date dataSQL = java.sql.Date.valueOf(data);
java.sql.Time horaSQL = java.sql.Time.valueOf(hora); GOSTEI 0
Éderson Bologna
12/06/2012
[quote="Higinosui"][quote="simu"]
[...]
Cara eu fiz exatamente como voce me sugeriu e nenhum dos dois modos tá cendo aceito, e nessa parte aqui:
private void inserirData(java.util.Date data) {
java.sql.Date dataSQL = new java.sql.Date(data.getTime()); // converter para java.sql.Date
java.sql.Time horaSQL = new java.sql.Time(data.getTime()); // " Time
}
try {
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
stmt.executeUpdate();
stmt.close();
} catch(Exception errado) {
errado.printStackTrace(); // se ignorar Exception, não usar printStackTrace, eu não vou mais responder!!!!!!!!
}
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
// data no formato: yyyy-[m]m-[d]d
// hora no formato: hh:mm:ss
private void inserirData(String data, String hora) {
java.sql.Date dataSQL = java.sql.Date.valueOf(data);
java.sql.Time horaSQL = java.sql.Time.valueOf(hora); try {
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(3, horaSQL);
stmt.executeUpdate();
stmt.close();
} catch(Exception errado) {
errado.printStackTrace();
} private void inserirData(String data, String hora) {
java.sql.Date dataSQL = java.sql.Date.valueOf(data);
java.sql.Time horaSQL = java.sql.Time.valueOf(hora); GOSTEI 0
Hr
12/06/2012
mensagem de erro
GOSTEI 0
Hr
12/06/2012
vou continuar tentendo aqui, caso eu não consiga, é melhor salvar como string mesmo, pra não dar mais trabalho. sou novato em programação mesmo :sad:
GOSTEI 0
Éderson Bologna
12/06/2012
[quote="Higinosui"]mensagem de erro
esse é apenas o erro do segundo caso. Onde está a do primeiro?
esse erro é simples: não tem a [color=blue][b]new[/b][/color] nesses comandos... [color=#008800][b]valueOf [/b][/color]é um método estático dessas classes.
GOSTEI 0
Éderson Bologna
12/06/2012
[quote="Higinosui"]vou continuar tentendo aqui, caso eu não consiga, é melhor salvar como string mesmo, pra não dar mais trabalho. sou novato em programação mesmo :sad:
normalmente não acho boa idéia salvar como [color=#008800][b]String[/b][/color]... e mesmo com o postgresql não deveria ser problema salvar como objeto.
GOSTEI 0
Hr
12/06/2012
[quote="simu"][quote="Higinosui"]mensagem de erro
esse é apenas o erro do segundo caso. Onde está a do primeiro?
esse erro é simples: não tem a [color=blue][b]new[/b][/color] nesses comandos... [color=#008800][b]valueOf [/b][/color]é um método estático dessas classes. stmt.setDate(3, dataSQL); stmt.setTime(4, horaSQL);
GOSTEI 0
Hr
12/06/2012
e tudo que eu queria era aproveitar essa Thread que eu tenho na mesma classe.
e aproveitar a data e hora para gravar no bd
Date data = new Date();
SimpleDateFormat formatData = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatHora = new SimpleDateFormat("HH:mm:ss");
Thread threadRelogio = new Thread() {
public void run() {
mostraRelogio();
}
};
threadRelogio.start();
public void mostraRelogio() {
try {
while (true) {
Date data = new Date();
String hora = formatHora.format(data);
jTextfield1.setText(formatHora.format(data));
jTextfield2.setText(formatData.format(data));
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
}
} GOSTEI 0
Éderson Bologna
12/06/2012
[quote="Higinosui"][quote="simu"][
[...]
o outro erro é referente a essa parte
stmt.setDate(3, dataSQL); stmt.setTime(4, horaSQL);
Date data = new Date();
SimpleDateFormat formatData = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatHora = new SimpleDateFormat("HH:mm:ss");
Thread threadRelogio = new Thread() {
public void run() {
mostraRelogio();
}
};
threadRelogio.start();
public void mostraRelogio() {
try {
while (true) {
Date data = new Date();
String hora = formatHora.format(data);
jTextfield1.setText(formatHora.format(data));
jTextfield2.setText(formatData.format(data));
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
}
} GOSTEI 0
Hr
12/06/2012
[quote="simu"][quote="Higinosui"][quote="simu"][
[...]
o outro erro é referente a essa parte
stmt.setDate(3, dataSQL); stmt.setTime(4, horaSQL);
Date data = new Date();
SimpleDateFormat formatData = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatHora = new SimpleDateFormat("HH:mm:ss");
Thread threadRelogio = new Thread() {
public void run() {
mostraRelogio();
}
};
threadRelogio.start();
public void mostraRelogio() {
try {
while (true) {
Date data = new Date();
String hora = formatHora.format(data);
jTextfield1.setText(formatHora.format(data));
jTextfield2.setText(formatData.format(data));
Thread.sleep(1000);
}
} catch (InterruptedException ex) {
}
} GOSTEI 0
Hr
12/06/2012
aqui ta o codigo da minha classe
pra voce ver como eu to fazendo
public class cadastraCliagenda extends javax.swing.JFrame {
Date data = new Date();
SimpleDateFormat formatData = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatHora = new SimpleDateFormat("HH:mm:ss");
public cadastraCliagenda() {
initComponents();
Thread mostraRelogio = new Thread() {
public void run() {
rodaRelogiopede();
}
};
mostraRelogio.start();
//---------------------------------------------
public void rodaRelogiopede() {
try {
while (true) {
Date data = new Date();
String hora = formatHora.format(data);
jTextfield1.setText(formatHora.format(data));
jTextfield2.setText(formatData.format(data));
read.sleep(1000);
}
} catch (InterruptedException ex) {
}
}
}
//metodo que captura de data e hora para salvar no BD;
private void inserirData(java.util.Date data) {
java.sql.Date dataSQL = new java.sql.Date(data.getTime()); // converter para java.sql.Date
java.sql.Time horaSQL = new java.sql.Time(data.getTime());
}
...
//botão onde está a ação para gravar no BD
private void salvar_ActionPerformed(java.awt.event.ActionEvent evt) {
try{
Connection clientes = new conectarBD().getConnection();
String sql1="insert into cadastrar_clientes(nome,idade,datacadastro,horacadastro)values(?,?,?,?)";
PreparedStatement stmt = clientes.prepareStatement(sql1);
stmt.setString(1,jTextfield_n.getText());
stmt.setString(2,jTextfield_i.getText());
stmt.setDate(3, dataSQL);
stmt.setTime(4, horaSQL);
stmt.executeUpdate();
stmt.close();
}catch(Exception errado){
errado.printStackTrace();
}
...
}
}GOSTEI 0