Olá a todos,
tenho uma jsp que a cada clique no botão deve acessar um banco de dados (MySQL) pegar um valor inteiro, somar um e atualizar o banco de dados.
O problema é que só funciona da primeira vez, explico: quando clico no botão ele pega o valor e acrescenta um, entretanto, se cliquo novamente o valor anterior se repete e não o novo!
O que está acontecento??? Seguem os códigos:
minha jsp:
<%@ page session="false" %>
<%!
// carregando driver para banco de dados
public void jspInit() {
try {
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("MySQL driver carregado");
}
catch (ClassNotFoundException e) {
System.out.println(e.toString());
}
}
%>
<jsp:useBean id="meuDBBean" class="com.ladabio.sqlTools.meuDBBean"/>
<HTML>
<HEAD></HEAD>
&lt;javascript&gt;//
function jsAtualiza() {
<%
int res = meuDBBean.pegaDado();
%>
var ale = <%=res%>;
alert(ale);
}
&lt;javascript&gt;
<BODY>
<FORM>
<BR>
<INPUT type="button" value="Atualizar"
onClick = "jsAtualiza();">
</FORM>
</BODY>
</HTML>
e o meu bean:
package com.ladabio.sqlTools;
import java.sql.*;
public class meuDBBean {
public int pegaDado(){
int Dado;
int iCond1 =0;
try {
String dbUrl = "jdbc:mysql://127.0.0.1:3306/Books";
String dbUserName = "root";
String dbPassword = "";
Connection connection = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
Statement st = connection.createStatement();
//
// Recuperando ultimo dado gravado
String sql = "SELECT ultimo FROM DadosTeste WHERE dado='0'";
ResultSet rsUltimo = st.executeQuery(sql);
while (rsUltimo.next()){
iCond1 = rsUltimo.getInt(1);
}
//
Dado = iCond1;
// Atualizando ultimo dado
iCond1++;
sql = "UPDATE dadosteste SET ultimo ='" + iCond1 + "' WHERE dado LIKE '0'" ;
st.executeUpdate(sql);
st.close();
connection.close();
//
return Dado;
}
catch (SQLException exp1) {
System.out.println(exp1.toString());
Dado = 0;
return Dado;
}
} // fim do método pegaDados
} // fim da classe meuDBBean
