Inserir o resultador de combinações diretamente na tabela via código java

5 respostas
java
Jorge_Lula_da_Silva

Boa noite,

Estou tentando salvar combinações no banco de dados e gostaria da ajuda de vocês, sou novo em java e ainda estou com dificuldades.

Segue uma classe criada na tentativa de sucesso do mesmo.

public class BD_02 {

static Connection conexao;

public static void main(String[] args) throws Exception {

    conecta();
    
    System.out.println("antes de executar");

    executa("INSERT INTO combinacao (ltfn01, ltfn02, ltfn03, ltfn04, ltfn05, ltfn06, ltfn07, ltfn08, ltfn09, ltfn10, ltfn11, ltfn12, ltfn13, ltfn14, ltfn15) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
    
    desconecta();
}

public static void executa(String sql) throws Exception {

    Statement st = null;

    st = conexao.createStatement();
   
    st.executeUpdate(sql);

}

public static void conecta() {

    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost/loterias?autoReconnect=true&useSSL=false";
    String user = "root";
    String pass = "12345678";
    try {
        Class.forName(driver);
        conexao = DriverManager.getConnection(url, user, pass);
        System.out.println("Conexão bem sucedida");

    } catch (Exception e) {
        e.printStackTrace(); //nesta linha é impresso o erro
    }

}

    public class Teste {

    public int numeros[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25};
    public int quantidade = 15;
    public int resultado[] = new int[15];

    public int count = 0;

    private void busca(int inicio, int fim, int profundidade) {

        if ((profundidade + 1) >= quantidade) {
            for (int x = inicio; x <= fim; x++) {
                resultado[profundidade] = numeros[x];
                // faz alguma coisa com um dos resultados possiveis
                count++;
                System.out.println(resultado[0] + ", " + resultado[1] + ", " + resultado[2] + ", " + resultado[3] + ", " + resultado[4] + ", " + resultado[5] + ", " + resultado[6] + ", " + resultado[7] + ", " + resultado[8] + ", " + resultado[9] + ", " + resultado[10] + ", " + resultado[11] + ", " + resultado[12] + ", " + resultado[13] + ", " + resultado[14] + "\n");
            }
        } else {
            for (int x = inicio; x <= fim; x++) {
                resultado[profundidade] = numeros[x];
                busca(x + 1, fim + 1, profundidade + 1);
            }
        }
    }

}

    
    public static void desconecta() throws Exception {
    conexao.close();
}

}

5 Respostas

confuso

Qual é o problema que ocorre?

Jorge_Lula_da_Silva

Eu não sei como inserir os dados gerados da classe teste no meu banco de dados, gostaria desse apoio.
Ele roda bem até:

System.out.println("antes de executar");

Depois apresenta o erro.
Preciso de ajudar para inserir os dados na tabela.

confuso

Qual o erro?

Jorge_Lula_da_Silva

O erro só quando estiver no meu computador, no momento estou no trabalho.
a principio meu problema é pegar o resultado da classe teste e inserir no banco, acredito que falta algo depois do execute sql.

Jorge_Lula_da_Silva
Conexão bem sucedida

antes de executar

Exception in thread main com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) at line 1

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.Util.getInstance(Util.java:408)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2491)

at com.mysql.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1552)

at com.mysql.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2607)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1480)

at BD_02.executa(BD_02.java:36)

at BD_02.main(BD_02.java:25)

C:\Users\Jorge\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1

FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

MInha dificuldade é atribuir os valores da variavel resultado no comando (values) sql para iserir na tabela.

Criado 14 de maio de 2019
Ultima resposta 16 de mai. de 2019
Respostas 5
Participantes 2