será que alguem poderia me ajudar, esta sendo executado perfeitamente o script(lembrando que criei uma outra classe passando os metodos), porém não esta inserindo no banco pior não da nenhum erro.
Peço desculpas se não ficou claro. apenas necessito inserir o insert no banco, mas como é minha primeira aplicação acho que deixei passar algo.
package br.com.getnet.BDORA;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class JDBCOracleconect {
public static void main(String[] args) throws SQLException {
String coluna1;
Date coluna2;
Date coluna20 = null;
Date coluna19;
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
List<Transacao> listaTransacao = new ArrayList<Transacao>();
try {
// Este é um dos meios para registrar um driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// Registrado o driver, vamos estabelecer uma conexão
Connection conexao = DriverManager.getConnection("jdbc:oracle:thin:@ip:porta:instancia","user", "senha");
conexao.setAutoCommit(false);
// Após estabelecermos a conexão com o banco de dados
// Utilizamos o método createStatement de con para criar o Statement
Statement stm = conexao.createStatement();
String sql = ("INSERT INTO transacao (colunas até 20) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
PreparedStatement query = conexao.prepareStatement(sql);
// Definido o Statement, executamos a query no banco de dados
ResultSet rs = stm
.executeQuery("select * from (select * from transacao where coluna19 between to_timestamp('01-08-2012 00:00:00.000', 'DD-MM-YYYY HH24:MI:SS.FF3')and to_timestamp('31-08-2012 23:59:59.999', 'DD-MM-YYYY HH24:MI:SS.FF3') ORDER BY dbms_random.value ) WHERE rownum = 1");
// Utilizando Calendar para alterar data
System.out.println(cal1);
{
//System.out.println(" Buscar uma transação da base de dados oracle aleatoriamente e cuja data de inserção esteja entre 01/08/2012 e 31/08/2012");
}
while (rs.next()) {
Transacao tran = new Transacao();
tran.setColuna01(rs.getString("coluna1"));
tran.setColuna02(rs.getDate("coluna2"));
tran.setColuna03(rs.getString("coluna3"));
tran.setColuna04(rs.getString("coluna4"));
tran.setColuna05(rs.getString("coluna5"));
tran.setColuna06(rs.getFloat("coluna6"));
tran.setColuna07(rs.getString("coluna7"));
tran.setColuna08(rs.getString("coluna8"));
tran.setColuna09(rs.getString("coluna9"));
tran.setColuna10(rs.getFloat("colun10"));
tran.setColuna11(rs.getString("coluna11"));
tran.setColuna12(rs.getString("coluna12"));
tran.setColuna13(rs.getString("coluna13"));
tran.setColuna14(rs.getString("coluna14"));
tran.setColuna15(rs.getString("coluna15"));
tran.setColuna16(rs.getDate("coluna16"));
tran.setColuna17(rs.getString("coluna17"));
tran.setColuna18(rs.getString("coluna18"));
tran.setColuna19(rs.getString("coluna19"));
tran.setcoluna20(rs.getDate("coluna20"));
coluna2= rs.getDate("coluna2");
coluna1 = rs.getString("coluna1");
// incrementar a data em 60 dias e alterar a hora para a hora
// atual
cal1.setTime(coluna2);
System.out.println(coluna2);
cal1.add(Calendar.DATE, 60);
cal1.set(Calendar.HOUR, cal2.get(Calendar.HOUR));
cal1.set(Calendar.MINUTE, cal2.get(Calendar.MINUTE));
cal1.set(Calendar.SECOND, cal2.get(Calendar.SECOND));
cal1.set(Calendar.MILLISECOND, cal2.get(Calendar.MILLISECOND));
{
//System.out.println("Alterar os seguintes campos dessa data/hora ? incrementar a data em 60 dias e a alterar a hora para a hora atual");
}
System.out.println(cal1.getTime());
coluna2= cal1.getTime();
// Alterar campos de uma coluna, está sendo usado para
// evidenciar que esta sendo feita alteração da data
System.out.println("hora da coluna1 sem alteração");
String coluna1 = coluna1;
String codigo_numeros2 = coluna1.substring(31, 39);
System.out.println(codigo_numeros2);
System.out.println("hora do coluna1 com alteração");
//System.out.println("O QUE ME FOI PEDIDO alterar a hora que está dentro da coluna1 para a mesma que foi colocada no campo data/hora da coluna2");
SimpleDateFormat formato = new SimpleDateFormat("HHmmssSS2");
// alterar os 8 ultimos digitos do coluna1
String teste = coluna1;
teste = codigo_numeros2;
teste = teste.replace(coluna1.substring(31, 39),
formato.format(coluna2));
System.out.print(teste);
listaTransacao.add(tran);
}
for (Movimento movimento : listamovimento) {
query.setString(1, movimento.getColuna1());
query.setDate(2, (java.sql.Date) movimento.coluna02/*data*/());
query.setString(3, movimento.getColuna03());
query.setString(4, movimento.getColuna04());
query.setString(5, movimento.getColuna05());
query.setFloat(6, movimento.getColuna06());
query.setString(7, movimento.getColuna07());
query.setString(8, movimento.getColuna08());
query.setString(9, movimento.getColuna09());
query.setFloat(10, movimento.getColuna10());
query.setString(11, movimento.getColuna11());
query.setString(12, movimento.getColuna12());
query.setString(13, movimento.getColuna13());
query.setString(14, movimento.getColuna14());
query.setString(15, movimento.getColuna15());
query.setDate(16, (java.sql.Date) movimento.getColuna16/*data*/());
query.setString(17, movimento.getColuna17());
query.setString(18, movimento.getColuna18());
query.setDate(19, (java.sql.Date) movimento.getColuna19 /*data*/());
query.setDate(20, (java.sql.Date) movimento.getColuna20/*data*/());
query.addBatch();
{
}
}
conexao.commit();
query.clearBatch();
query.close();
//System.out.println("Incluir essa nova transação na base de dados oracle");
// mostra os erros
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e)// erro que pode ocorrer na comunicação com o BD
{
e.printStackTrace(); // forma de ver qual erro foi gerado
}
}
}
Peço desculpas se não fui muito claro minha segunda postagem no forum fico no aguardo de um retorno, pois tenho de entregar isso funcionando amanhã 24/01.
JAVA NÃO É DIFICIL O DIFICIL E APRENDER TUDO QUE É NECESSÁRIO PARA NÃO TER DE INCOMODAR OS OUTROS!!
ESTOU ESTUDANDO PARA ISSO!!