Bom dia!
Sou iniciante em java e estou tendo dificuldades em ler dados de uma planilha em excel e gravar em um banco de dados sql. O banco de dados já tem uma estrutura e já esta criado so preciso colar os dados de uma coluna em excel na coluna de uma tabela. Consegui ler o arquivo em excel mas não sei como gravar no sql. portanto gostaria de uma ajuda de vocês.
Desde já agradeço pela atenção.
Segue abaixo meu codigo:
Cria um método que insere o registro no banco e passa os campos como parametros assim:
for(inti=0; i < linhas; i++) {Cella1=sheet.getCell(0,i);Cellb1=sheet.getCell(0,i);Cellc1=sheet.getCell(0,i);ClasseDoBanco.insereNoBanco(a1.getContents(),b1.getContents(),c1.getContents());
}
métododaclassedobanco:
publicinsereNoBanco(Stringa1,Stringb1,Stringc1){
Stringsql="INSERT INTO TABELA (COLUNA1, COLUNA2, COLUNA3) VALUES (?,?,?)";try{
PreparedStatementstmt=Connection.prepareStatement(sql);//Pega aqui a conexão com seu bancointidx=1;stmt.setObject(idx++,a1,Types.VARCHAR);stmt.setObject(idx++,b1,Types.VARCHAR);stmt.setObject(idx++,c1,Types.VARCHAR);stmt.executeUpdate(sql)}catch(SQLExceptione){
}
}
Se for muitos campos do Excel cria um objeto e passa como parametro para o método ao invés de passar as Strings.
Espero que tenha ajudado.
ViniGodoy
Pessoal, por favor, evitem escrever usando SOMENTE MAIUSCULAS, principalmente no título dos tópicos.
Além disso, ao postar código, por favor, usem a tag code. Se ainda não sabem, leiam:
I
implantar
Junior obrigado pela dica entendi. Aqui mas também não estou conseguindo conectar no banco como ficaria a classe de conexao neste caso?
Minha classe de conectar esta o seguinte:
Junior obrigado pela dica entendi. Aqui mas também não estou conseguindo conectar no banco como ficaria a classe de conexao neste caso?
Minha classe de conectar esta o seguinte:
Cadê a tag code?
I
implantar
publicclassConexao{publicstaticvoidmain(String[]args){// string de conexão...usando Windows AuthenticationStringconnectionUrl="jdbc:sqlserver://localhost:1433;"+"databaseName=suporte;integratedSecurity=true;";try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();Connectionconn=DriverManager.getConnection(connectionUrl);System.out.println("Conexão obtida com sucesso.");}catch(SQLExceptionex){System.out.println("SQLException: "+ex.getMessage());System.out.println("SQLState: "+ex.getSQLState());System.out.println("VendorError: "+ex.getErrorCode());}catch(Exceptione){System.out.println("Problemas ao tentar conectar com o banco de dados: "+e);}}}
juniorsimi
Qual erro retorna?
I
implantar
Problemas ao tentar conectar com o banco de dados: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
A conexão deu certo, mas não esta inserindo nada no banco. A minha tabela onde tem que ser inserido chama produtos e coluna referencia.
Classe excel
publicclassexcel{publicstaticvoidmain(String[]args)throwsIOException,BiffException{Workbookworkbook=Workbook.getWorkbook(newFile("teste.xls"));Sheetsheet=workbook.getSheet(0);intlinhas=sheet.getRows();System.out.println("Iniciando a leitura da planilha XLS:");for(inti=0;i<linhas;i++){Cella1=sheet.getCell(0,i);Cellb1=sheet.getCell(0,i);Cellc1=sheet.getCell(0,i);Stringas1=a1.getContents();System.out.println("Coluna 1: "+as1);Conexao.insereNoBanco(a1.getContents(),b1.getContents(),c1.getContents());}workbook.close();}}
publicclassConexao{privatebooleanclosed=false;privateConnectionconn;privateConnectionopenConnection()throwsDAOException{Stringdriver="net.sourceforge.jtds.jdbc.Driver";Stringurl="jdbc:jtds:sqlserver://localhost/suporte";Stringuser="sa";Stringpasswd="123456";try{Class.forName(driver);conn=DriverManager.getConnection(url,user,passwd);// Conexao=DriverManager.getConnection(url,user,passwd); conn.setAutoCommit(false);returnconn;}catch(ClassNotFoundExceptione){thrownewDAOException(e);}catch(SQLExceptione){thrownewDAOException(e);}}}publicclassConsultaextendsConexao{privatestaticConsultainstance;publicstaticsynchronizedConsultagetInstance(){if(instance==null){instance=newConsulta();}returninstance;}publicvoidinsereNoBanco(Stringcontents,Stringcontents0,Stringcontents1)throwsDAOException{try{Connectioncn=openConnection();PreparedStatementps=cn.prepareStatement("INSERT INTO produtos (referencia) VALUES (?)");intidx=1;ps.setObject(idx++,contents,Types.VARCHAR);ps.executeUpdate(sql);}catch(SQLExceptione){thrownewDAOException(e.getMessage());}}}publicclassexcel{publicstaticvoidmain(String[]args)throwsIOException,BiffException{newexcel().leExcel();}publicvoidleExcel(){Workbookworkbook=Workbook.getWorkbook(newFile("teste.xls"));Sheetsheet=workbook.getSheet(0);intlinhas=sheet.getRows();System.out.println("Iniciando a leitura da planilha XLS:");for(inti=0;i<linhas;i++){Cella1=sheet.getCell(0,i);Cellb1=sheet.getCell(0,i);Cellc1=sheet.getCell(0,i);Stringas1=a1.getContents();System.out.println("Coluna 1: "+as1);Conexao.getInstance().insereNoBanco(a1.getContents(),b1.getContents(),c1.getContents());}workbook.close();}}