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.
V
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);}}}
J
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();}}