Inserir dados no SQL

6 respostas
I

Boa tarde a todos!

Estou tendo dificuldades em inserir dados no sql. Estava precisando pegar uma coluna de uma planilha em excel e inserir esta coluna em uma tabela no banco de dados. Ex: Tenho um banco com uma tabela chama produtos, nesta tabela tenho uma coluna chamada referencia. Ai quero pegar a coluna 'a1' até 'a10' e jogar dentro da coluna referencia da tabela produtos em meu banco de dados.  tenho uma classe comunicando com o banco de dados perfeitamente, classe que chama testeConnection. Como proceder neste caso?

Segue meu codigo:

package implantar1;

import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import javax.swing.JOptionPane;
import java.sql.*;

public class excel {

    public static void main(String[] args) throws IOException, BiffException, DAOException {


       new excel().leExcel();
    }

    public void leExcel() throws IOException, BiffException, DAOException{

     Workbook workbook = Workbook.getWorkbook(new File("teste.xls"));
        Sheet sheet = workbook.getSheet(0);
        int linhas = sheet.getRows();

        System.out.println("Iniciando a leitura da planilha XLS:");
        for (int i = 0; i < linhas; i++) {
            Cell a1 = sheet.getCell(0, i);
            Cell b1 = sheet.getCell(0, i);
            Cell c1 = sheet.getCell(0, i);
            String as1 = a1.getContents();

            System.out.println("Coluna 1: " + as1);
            
           

        }
        workbook.close();

    }
}

6 Respostas

pedruhenrik

ué, se vc já consegue ler (e concatenar) os dados da planilha excel e já sabe como comunicar no banco não falta apenas fazer o insert?

att,

I
Esta ocorrendo erros abaixo:

Iniciando a leitura da planilha XLS:

Coluna 1: 88888

Exception in thread main java.lang.UnsupportedOperationException: Not yet implemented

at implantar1.Consulta.openConnection(Consulta.java:43)

at implantar1.Consulta.insereNoBanco(Consulta.java:27)

at implantar1.excel.leExcel(excel.java:38)

at implantar1.excel.main(excel.java:18)

Java Result: 1

Segue abaixo minhas 3 classes:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package implantar1;

import java.sql.*;
import java.util.*;

public class Conexao
{
    public static void main(String[] args)
    {
        DB db = new DB();
        db.dbConnect(
     "jdbc:jtds:sqlserver://localhost:1433/suporte","sa","");
    }
}

class DB
{
    public DB() {}

    public void dbConnect(String db_connect_string,
  String db_userid, String db_password)
    {
        try
        {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            Connection conn = DriverManager.getConnection(
    db_connect_string, db_userid, db_password);
            System.out.println("connected");

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
};
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package implantar1;
import com.sun.jmx.mbeanserver.OpenConverter;
import java.sql.*;
import java.util.*;

public class Consulta extends Conexao {

    private static Consulta instance;

    public static synchronized Consulta getInstance() {
        if (instance == null) {
            instance = new Consulta();
        }

        return instance;
    }
    private String sql;

    public void insereNoBanco(String contents, String contents0, String contents1) throws DAOException{

        try {
            Connection cn = openConnection();

            PreparedStatement ps = cn.prepareStatement("INSERT INTO produtos  (referencia) VALUES (a1)");

             int idx = 1;
            ps.setObject(idx++, contents, Types.VARCHAR);
        
            ps.executeUpdate(sql);

        } catch (SQLException e) {
            throw new DAOException(e.getMessage());
        }

    }

    private Connection openConnection() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    
}
package implantar1;

import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import javax.swing.JOptionPane;
import java.sql.*;

public class excel {

    public static void main(String[] args) throws IOException, BiffException, DAOException {


       new excel().leExcel();
    }

    public void leExcel() throws IOException, BiffException, DAOException{

     Workbook workbook = Workbook.getWorkbook(new File("teste1.xls"));
        Sheet sheet = workbook.getSheet(0);
        int linhas = sheet.getRows();

        System.out.println("Iniciando a leitura da planilha XLS:");
        for (int i = 0; i < linhas; i++) {
            Cell a1 = sheet.getCell(0, i);
            Cell b1 = sheet.getCell(0, i);
            Cell c1 = sheet.getCell(0, i);
            String as1 = a1.getContents();

            System.out.println("Coluna 1: " + as1);


          // Conexao.getInstance().insereNoBanco(a1.getContents(), b1.getContents(), c1.getContents());
           Consulta.getInstance().insereNoBanco(a1.getContents(),b1.getContents(),c1.getContents());
           
           

        }
        workbook.close();

    }
}
eliangela

Eu sei que esta não é a questão do tópico, mas vc não acha que neste trecho de código vc está pegando a mesma célula?

Outra coisa… pra fazer o Insert mais facilmente, é só vc usar o PreparedStatement.

eliangela
<blockquote><div class="quote-author">implantar:</div>Esta ocorrendo erros abaixo:

Iniciando a leitura da planilha XLS:

Coluna 1: 88888

Exception in thread “main” java.lang.UnsupportedOperationException: Not yet implemented

at implantar1.Consulta.openConnection(Consulta.java:43)

at implantar1.Consulta.insereNoBanco(Consulta.java:27)

at implantar1.excel.leExcel(excel.java:38)

at implantar1.excel.main(excel.java:18)

Java Result: 1

Olha no seu método openConnection.

private Connection openConnection() { throw new UnsupportedOperationException("Not yet implemented"); //essa linha está disparando a exception }

I

se eu tirar esta linha ai da erro na linha:

try { Connection cn = openConnection();

eliangela

vc precisa implementar esse método…
O que aconeteceu aí foi o seguinte:

quando vc pede para o Netbeans gerar um método pra vc, ele automaticamente acrescenta a instrução throw new UnsupportedOperationException(“Not yet implemented”);.
Isso quer dizer que vc tem que implementar alguma coisa. Simplesmente tirar a linha não resolve.

Tá faltando pra vc abrir a conexão. Aqui no fórum tem um tutorial de conexão com o banco de dados… pode te ajudar.

Criado 19 de julho de 2011
Ultima resposta 19 de jul. de 2011
Respostas 6
Participantes 3