Boa tarde galera!!!
Sou novo por aki… entao preciso de uma ajuda!!
Preciso implementar uma formula euclidiana para saber a distancia entre vetores… ja add pelo java(SERVLET) os valores no BD MySQL… soh q num consigo buscar esses valores para dentro de uma classe para daee então aplicar a formula euclidiana.
depois que os valores q foram incluidos no BD em forma de vetor(valr1,valr2,valr3,valr4,valr5), preciso comparar valores atuais com os do BD… axo q precisa fazer ulguns FOR para percorrer esses vetores… heheh alguem me entendeu??
mas primeiramente preciso buscar esses vetores no BD… como faço??
Depende, como você ta gravando esses valores? É com código java? Se for você já tem uma conexão! Você está usando jdbc? Se for faz uma query, tras esses valores e joga em um objeto…
D
DionesPJ
Sim eu gravo com codigo JAVA.. eh com driver jdbc sim!! soh q da erro.. pelo jeito eh erro de abre e fech"{}" hehehe
o q axa desse codigo?
a intensão eh ao menos conseguir trazer os valores da coluna "valor1" do BD
esse codigo ja eh o da busca de valores!!
D
DionesPJ
tavez fique mais facil compreender o erro com o codigo completo neh!!
Ahh… o erro eh de sintaxe nas linhas abaixo do 1º try.
importjava.io.*;importjava.util.*;importjavax.servlet.*;importjavax.servlet.http.*;importjava.sql.*;publicclassBuscaValoresextendsHttpServlet{booleanerro=false;Connectioncon;StringmsgErro=newString();// dados da paginaStringvalor1,valor2,valor3,valor4,valor5;publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{erro=!carregaBd();res.setContentType("text/html");PrintWriterout=res.getWriter();if(erro){out.println(mensagem(msgErro));return;}out.println("<html>");out.println("<head>");out.println("<title>Knn</title>");out.println("</head>");out.println("<form action='http://localhost:8084/ProgKNN/BuscaValores'method='post' name='form1'>");out.println("<table border='0'>");out.println("<tr>");out.println("<td width='100%' align='left'>Buscando Valores Knn</td>");out.println("</tr>");out.println("<tr>");out.println("<td width='100%' align='left'");out.println("<hr>");out.println("</td>");out.println("</tr>");out.println("</table>");out.println("<table border='0'>");try{sql="select valor1 from teste_knn;";statement=con.prepareStatement(sql);resultado=statement.executeQuery();while(resultado.next()){Stringnome=resultado.getString("valor1");out.println("<tr>");out.println("<td>"+valor1+"</td>");out.println("</td>");out.println("</tr>");}resultado.close();statement.close();}catch(SQLExceptione){out.println(mensagem("Erro SQL: "+e.toString()));}out.println("</table>");out.println("</form>");out.println("</body>");out.println("</html>");try{con.close();}catch(Exceptione){}}privateStringmensagem(Stringmsg){StringpaginaMensagem=newString();paginaMensagem="<html><head><title>Mensagem</title></head>";paginaMensagem+="<body><h2>"+msg+"</h2></body></html>";returnpaginaMensagem;}privatebooleancarregaBd(){// Carrega drivertry{Class.forName("com.mysql.jdbc.Driver").newInstance();}catch(Exceptione){msgErro="Erro ao carregar driver Banco Dados "+e.toString();returnfalse;}// Cria conexao com BDtry{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/euclidiana","root","diones");}catch(Exceptione){msgErro="Erro ao conectar ao Banco de dados"+e.toString();returnfalse;}returntrue;}}
BrunoBastosPJ
você não declarou que a variável sql era uma String. Você não declarou que a variável statement era um Statement e o mesmo com o resultset. Mudei o método que criar o Statement. Da uma olhada ai e testa!
importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;importjava.sql.*;publicclassBuscaValoresextendsHttpServlet{booleanerro=false;Connectioncon;StringmsgErro=newString();// dados da paginaStringvalor1,valor2,valor3,valor4,valor5;publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{erro=!carregaBd();res.setContentType("text/html");PrintWriterout=res.getWriter();if(erro){out.println(mensagem(msgErro));return;}out.println("<html>");out.println("<head>");out.println("<title>Knn</title>");out.println("</head>");out.println("<form action='http://localhost:8084/ProgKNN/BuscaValores'method='post' name='form1'>");out.println("<table border='0'>");out.println("<tr>");out.println("<td width='100%' align='left'>Buscando Valores Knn</td>");out.println("</tr>");out.println("<tr>");out.println("<td width='100%' align='left'");out.println("<hr>");out.println("</td>");out.println("</tr>");out.println("</table>");out.println("<table border='0'>");try{Stringsql="select valor1 from teste_knn;";Statementstatement=con.createStatement();ResultSetresultado=statement.executeQuery(sql);while(resultado.next()){Stringnome=resultado.getString("valor1");out.println("<tr>");out.println("<td>"+valor1+"</td>");out.println("</td>");out.println("</tr>");}resultado.close();statement.close();}catch(SQLExceptione){out.println(mensagem("Erro SQL: "+e.toString()));}out.println("</table>");out.println("</form>");out.println("</body>");out.println("</html>");try{con.close();}catch(Exceptione){}}privateStringmensagem(Stringmsg){StringpaginaMensagem=newString();paginaMensagem="<html><head><title>Mensagem</title></head>";paginaMensagem+="<body><h2>"+msg+"</h2></body></html>";returnpaginaMensagem;}privatebooleancarregaBd(){// Carrega drivertry{Class.forName("com.mysql.jdbc.Driver").newInstance();}catch(Exceptione){msgErro="Erro ao carregar driver Banco Dados "+e.toString();returnfalse;}// Cria conexao com BDtry{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/euclidiana","root","diones");}catch(Exceptione){msgErro="Erro ao conectar ao Banco de dados"+e.toString();returnfalse;}returntrue;}}
D
DionesPJ
isso!!! executou soh q resultou em valores nulos… tpw… no BD tenho 7 valores cadastrados, ele retorna 7 linhas com “null” em cada uma delas… sera q nao reconhece os numeros do BD…??
valeu Brunoo!!
BrunoBastosPJ
Tenta pegar pelo indice, só pra testar
Stringnome=resultado.getString(1);
Obs: Supondo que o 2nd campo do seu BD, seja um varchar
D
DionesPJ
pois eh… pior q meus atributos estao declarados como “float” pois vou trabalhar com peso… entao podera existir valores quebrados…
mais consegui buscalos e mostrar na tela, alterando de:
Stringnome=resultado.getString("valor1");
para:
Stringvalor1=resultado.getString("valor1");
tendeu… num sei mais vc tinha declarado como string o nome e entao mudei para valor1… certo??
agora quero ver c consigo buscar mais valores e implementar a formula(duvido q consigo sozinho)… hehehe
mais valeu!!! obrigado!!
BrunoBastosPJ
Se estão declarados como float use
floatvalor1=resultset.getFloat("valor1");
D
DionesPJ
por incrivel q pareca… num consigo ler uns valores digitados no teclado… valores do tipo flutuante!!.. preciso ler essa sequencia de valores para daee comparar com os valores q consegui ler do BD… olhem… consegui monta a tela… mais num consigo armazenar esses numeros em variaveis…
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{//PreparedStatement statement;//ResultSet resultado = null;//String sql;Stringn1=String.valueOf(num1);Stringn2=String.valueOf(num2);Stringn3=String.valueOf(num3);Stringn4=String.valueOf(num4);Stringn5=String.valueOf(num5);n1=req.getParameter("num1");n2=req.getParameter("num2");n3=req.getParameter("num3");n4=req.getParameter("num4");n5=req.getParameter("num5");res.setContentType("text/html");PrintWriterout=res.getWriter();if(erro){out.println(mensagem(msgErro));return;}out.println("<form action='http://localhost:8084/ProgKNN/BuscaValores'method='post' name='form1'>");out.println("<table border='0'>");out.println("<tr>");out.println("<td width='100%' align='left'>Buscando Valores Knn</td>");out.println("</tr>");out.println("<tr>");out.println("<td width='100%' align='left'");out.println("<hr>");out.println("</td>");out.println("</tr>");out.println("</table>");out.println("<table border='0'>");try{Stringsql="select * from teste_knn where cod_teste =3;";Statementstatement=con.createStatement();ResultSetresultado=statement.executeQuery(sql);while(resultado.next()){cod_teste=resultado.getFloat("cod_teste");valor1=resultado.getFloat("valor1");valor2=resultado.getFloat("valor2");valor3=resultado.getFloat("valor3");valor4=resultado.getFloat("valor4");valor5=resultado.getFloat("valor5");out.println("<tr>");out.println("<td>vetor avaliado:"+cod_teste+"</td>");out.println("</tr>");out.println("<tr>");out.println("<td>Valores: "+valor1+" ; "+valor2+" ; "+valor3+" ; "+valor4+" ; "+valor5+"</td>");//soma= valor1;//somatotal = soma + somatotal ;somatotal=valor1+valor2+valor3+valor4+valor5;out.println("</td>");out.println("</tr>");}// potencia de um x usando cossenofloatx1=(float)(Math.pow((valor1),2));floatx2=(float)(Math.pow((valor2),2));floatx3=(float)(Math.pow((valor3),2));floatx4=(float)(Math.pow((valor4),2));floatx5=(float)(Math.pow((valor5),2));//potencia de yfloaty1=(float)(Math.pow(num1,2));floaty2=(float)(Math.pow(num2,2));floaty3=(float)(Math.pow(num3,2));floaty4=(float)(Math.pow(num4,2));floaty5=(float)(Math.pow(num5,2));//somatorias//calculo do numeradorfloatE1=(float)((valor1*2)+(valor2*2)+(valor3*2)+(valor4*2)+(valor5*2));floatE2=(float)(x1+x2+x3+x4+x5);floatE3=(float)(y1+y2+y3+y4+y5);//calculo final do denominadorfloatdenominador=(float)(E2*E3);//calculo final da divisão do cossenofloatcos=(float)(E1/denominador);//mostra resultados das potenciasout.println("<tr>");out.println("<td>Resultado do numerador: "+E1+"</td>");out.println("</td>");out.println("<tr>");out.println("<td>Resultado do denominador: "+denominador+"</td>");out.println("</td>");out.println("</tr>");out.println("<tr>");out.println("<td>Resultado da formula cossenoidal em (cod_teste1) é: "+cos+"</td>");out.println("</td>");out.println("</tr>");resultado.close();statement.close();}catch(SQLExceptione){out.println(mensagem("Erro SQL: "+e.toString()));}}
D
DionesPJ
tentei melhorar um pouco esse codigo… mais a principio da um erro d incompatibilidade eu acho… olhem o erro:
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{erro=!carregaBd();res.setContentType("text/html");PrintWriterout=res.getWriter();if(erro){out.println(mensagem(msgErro));return;}floatn1=Float.parseFloat("num1");floatn2=Float.parseFloat("num2");floatn3=Float.parseFloat("num3");floatn4=Float.parseFloat("num4");floatn5=Float.parseFloat("num5");try{Stringsql="select * from teste_knn where cod_teste =3;";Statementstatement=con.createStatement();ResultSetresultado=statement.executeQuery(sql);while(resultado.next()){cod_teste=resultado.getFloat("cod_teste");valor1=resultado.getFloat("valor1");valor2=resultado.getFloat("valor2");valor3=resultado.getFloat("valor3");valor4=resultado.getFloat("valor4");valor5=resultado.getFloat("valor5");}// potencia de um x usando cossenofloatx1=(float)(Math.pow((valor1),2));floatx2=(float)(Math.pow((valor2),2));floatx3=(float)(Math.pow((valor3),2));floatx4=(float)(Math.pow((valor4),2));floatx5=(float)(Math.pow((valor5),2));//potencia de yfloaty1=(float)(Math.pow(n1,2));floaty2=(float)(Math.pow(n2,2));floaty3=(float)(Math.pow(n3,2));floaty4=(float)(Math.pow(n4,2));floaty5=(float)(Math.pow(n5,2));//somatorias//calculo do numeradorfloatE1=(float)((valor1*n1)+(valor2*n2)+(valor3*n3)+(valor4*n4)+(valor5*n5));floatE2=(float)(x1+x2+x3+x4+x5);floatE3=(float)(y1+y2+y3+y4+y5);//calculo final do denominadorfloatdenominador=(float)(E2*E3);//calculo final da divisão do cossenofloatcos=(float)(E1/denominador);//mostra resultados das potencias out.println("<html>");out.println("<head>");out.println("<title>Knn</title>");out.println("</head>");out.println("<form action='http://localhost:8084/ProgKNN/BuscaValores'method='post' name='form1'>");out.println("<table border='0'>");out.println("<tr>");out.println("<td width='100%' align='left'>Buscando Valores Knn</td>");out.println("</tr>");out.println("<tr>");out.println("<td width='100%' align='left'");out.println("<hr>");out.println("</td>");out.println("</tr>");out.println("</table>");out.println("<table border='0'>");out.println("<tr>");out.println("<td>Resultado do vetor digitado: "+n1+" "+n2+" "+n3+" "+n4+" "+n5+"</td>");out.println("</td>");//fim cabecalhoout.println("<tr>");out.println("<td>Resultado do numerador: "+E1+"</td>");out.println("</td>");out.println("<tr>");out.println("<td>Resultado do denominador: "+denominador+"</td>");out.println("</td>");out.println("</tr>");out.println("<tr>");out.println("<td>Resultado da formula cossenoidal em (cod_teste1) é: "+cos+"</td>");out.println("</td>");out.println("</tr>");out.println("</table>");out.println("</body>");out.println("</html>");resultado.close();statement.close();}catch(SQLExceptione){out.println(mensagem("Erro SQL: "+e.toString()));}}
Obrigado!!
D
DionesPJ
Estou com duvidas a respeito de como fazer uma consulta sql, num BD MySQL …ou seja, quero aliar uma sql a uma variavel chamada cod a minha consuta sql. Nao consigo atribuir essa variavel na condicao proposta: